dict1 = {'a': 1, 'b': 2, 'c': 3, 4: 'd', 5: 'e'}
字典转字符串
import json
str1 = json.dumps(dict1)
str1
‘{“a”: 1, “b”: 2, “c”: 3, “4”: “d”, “5”: “e”}’
str2 = str(dict1)
str2
“{‘a’: 1, ‘b’: 2, ‘c’: 3, 4: ‘d’, 5: ‘e’}”
字符转串字典
str3 = '{"a": 1, "b": 2, "c": 3, "4": "d", "5": "e"}' # json处理正确
str4 = "{'a': 1, 'b': 2, 'c': 3, 4: 'd', 5: 'e'}" # json处理会出错
dict2 = json.loads(str3)
dict2
{‘a’: 1, ‘b’: 2, ‘c’: 3, ‘4’: ‘d’, ‘5’: ‘e’}
try:
dict3 = json.loads(str4) # 注意json处理不了字符串是单引号的情况
except Exception as e:
print('异常:',e)
异常: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)
dict4 = eval(str4) # 字符串转字典
dict4
{‘a’: 1, ‘b’: 2, ‘c’: 3, 4: ‘d’, 5: ‘e’}
# pip install jsonlike
# pip install unwrapper
import jsonlike
dict5 = jsonlike.loads(str4) # 字符串转字典
dict5
{‘a’: 1, ‘b’: 2, ‘c’: 3, 4: ‘d’, 5: ‘e’}
# pip install demjson
import demjson
dict6 = demjson.decode(str4) # 字符串转字典
dict6
{‘a’: 1, ‘b’: 2, ‘c’: 3, 4: ‘d’, 5: ‘e’}
import ast
dict7 = ast.literal_eval(str4) # 字符串转字典,报错少,推荐使用
dict7
{‘a’: 1, ‘b’: 2, ‘c’: 3, 4: ‘d’, 5: ‘e’}