Vor*_*Vor 1 python mysql string dictionary list
我需要在 MySQL 中存储嵌套字典列表。我看到的唯一方法是将其转换为字符串并将其存储在字段中TEXT。挑战是如何将其从字符串转换回来?
例如:
import json
val1 = {"aaa":1}
val2 = {"bbb":2}
val3 = {"ccc":3}
values = [
json.dumps(val1),
json.dumps(val2),
json.dumps(val3),
]
values_str = str(values)
values_str
#'[\'{"aaa": 1}\', \'{"bbb": 2}\', \'{"ccc": 3}\']'
Run Code Online (Sandbox Code Playgroud)
现在我可以安全地将它存储在 MySQL 中,但是如何将它转换回原来的形状。
我尝试使用.split()但它没有正确分割它。另外,我还没有包含,在字典中,但它们会在那里,所以吐口水,不是一个选择
无需将 json 字符串放入值列表中,只需对字典列表进行 json 编码即可。
values = [val1, val2, val3]
values_str = json.dumps(values)
# Then read it back
values = json.loads(values_str)
Run Code Online (Sandbox Code Playgroud)
如果你真的必须这样做,那么你可以这样做
import ast
values = ast.literal_eval(values_str)
values = [json.loads(item) for item in values]
Run Code Online (Sandbox Code Playgroud)