Python 將字串轉為字典

2021-09-18 03:56:07 字數 2521 閱讀 2409

在工作中遇到乙個小問題,需要將乙個python的字串轉為字典,比如字串:

user_info =

''

我們想把它轉為下面的字典:

user_dict =

有以下幾種方法:

>>

>

import json

>>

> user_info=

''>>

> user_dict = json.loads(user_info)

>>

> user_dict

但是使用json進行轉換存在乙個潛在的問題。

>>

>

import json

>>

> 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`

>>

> 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將字串轉為字典最佳實踐

在工作中我們經常會遇到資料型別之間的互轉的問題,而通常我們請求一些api藉口返回的結果就是字串,但是格式是json的,在python中轉為字典是最易處理的,所以這裡記錄一下在python下把字串轉為字典的三種方法。source code usr bin env python3 author nock...

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...