python字符串轉字典

方法一

  • 最常見的一種,使用json進行轉換
import json
s = {"name": "張三"}
print(json.loads(s))
------

{'name': '張三'}
  • 但是這種方式有可能會出現問題,例如單引號的情況
s = "{'name': '張三'}"
print(json.loads(s))
------

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/Cellar/python/3.7.3/Frameworks/Python.framework/Versions/3.7/lib/python3.7/json/__init__.py", line 348, in loads
    return _default_decoder.decode(s)
  File "/usr/local/Cellar/python/3.7.3/Frameworks/Python.framework/Versions/3.7/lib/python3.7/json/decoder.py", line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/usr/local/Cellar/python/3.7.3/Frameworks/Python.framework/Versions/3.7/lib/python3.7/json/decoder.py", line 353, in raw_decode
    obj, end = self.scan_once(s, idx)
json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)

方法二

  • 使用eval
s = "{'name': '張三'}"
print(eval(s))
------

{'name': '張三'}

方法三

  • 使用ast.literal_eval
import ast
s = "{'name': '張三'}"
print(ast.literal_eval(s))
------

{'name': '張三'}

參考鏈接:時光不寫博客-python字符串轉字典

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章