在工作中遇到乙個小問題,需要將乙個python
的字串轉為字典,比如字串:
user_info = ''我們想把它轉為下面的字典:
user_dict =有以下幾種方法:
1、通過 json 來轉換
>>> import json但是使用>>> user_info= ''
>>> user_dict = json.loads(user_info)
>>> user_dict
json
進行轉換存在乙個潛在的問題。
>>> import json2、通過 eval>>> user_info = ""
# 由於字串使用單引號,會導致執行出錯
>>> user_dict = json.loads(user_info)
traceback (most recent call last):
file "", line 1, in file "/usr/local/cellar/python/2.7.11/frameworks/python.framework/versions/2.7/lib/python2.7/json/__init__.py", line 339, in loads
return _default_decoder.decode(s)
file "/usr/local/cellar/python/2.7.11/frameworks/python.framework/versions/2.7/lib/python2.7/json/decoder.py", line 364, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
file "/usr/local/cellar/python/2.7.11/frameworks/python.framework/versions/2.7/lib/python2.7/json/decoder.py", line 380, in raw_decode
obj, end = self.scan_once(s, idx)
valueerror: expecting property name: line 1 column 2 (char 1)
>>> user_info = ''通過>>> user_dict = eval(user_info)
>>> user_dict
>>> user_info = ""
>>> user_dict = eval(user_info)
>>> user_dict
eval
進行轉換就不存在上面使用json
進行轉換的問題。但是,使用eval
卻存在安全性的問題
,比如下面的例子:
# 讓使用者輸入 `user_info`3、通過 literal_eval>>> user_info = raw_input('input user info: ')
# 輸入 ,沒問題
>>> user_dict = eval(user_info)
# 輸入 __import__('os').system('dir'),user_dict 會列出當前的目錄檔案!
# 再輸入一些刪除命令,則可以把整個目錄清空了!
>>> user_dict = eval(user_info)
>>> import ast使用>>> user = ''
>>> user_dict = ast.literal_eval(user)
>>> user_dict
user_info = ""
>>> user_dict = ast.literal_eval(user)
>>> user_dict
ast.literal_eval
進行轉換既不存在使用json
進行轉換的問題,也不存在使用eval
進行轉換的安全性問題
,因此推薦使用ast.literal_eval
。 Python 如何將字串轉為字典
在工作中遇到乙個小問題,需要將乙個python的字串轉為字典,比如字串 user info 我們想把它轉為下面的字典 user dict 有以下幾種方法 1 通過 json 來轉換 import json user info user dict json.loads user info user d...
Python 如何將字串轉為字典
在工作中遇到乙個小問題,需要將乙個 python 的字串轉為字典,比如字串 user info 我們想把它轉為下面的字典 user dict 有以下幾種方法 1 通過 json 來轉換 import json user info user dict json.loads user info user...
Python 如何將字串轉為字典
在工作中遇到乙個小問題,需要將乙個 python 的字串轉為字典,比如字串 user info 我們想把它轉為下面的字典 user info 有以下幾種方法 通過 json 來轉換 import json user info user dict json.loads user info user d...