我需要在SQLite表格中的一个单元格中插入一个字典列表,并能够将其恢复为原样,-字典列表。有一个选项可以将其作为json字符串插入。SQLite接受它,但是返回一个“格式错误的节点或字符串”。我正在使用pycharm。尝试使用ast.literal_eval()转换为列表-同样的错误。为什么所有的括号和逗号在结尾?会有任何帮助。
import json, sqlite3, pprint
list1 = [{'id': '9', 'name': 'Buiding'},
{'id': '10', 'name': 'Security'},
{'id': '11', 'name': 'Mass Media'},
{'id': '12', 'name': 'Consulting'},
{'id': '13', 'name': 'Medical care'}]
conn = sqlite3.connect('test.db')
c = conn.cursor()
c.executescript("DROP TABLE IF EXISTS result; CREATE TABLE result (data json)")
c.execute("insert into result values (?)", [json.dumps(list1)])
conn.commit()
a = c.execute("select json_extract (data, '$') FROM result;").fetchall()
conn.close()
pprint.pprint(a)
[('[{"id":"9","name":"Buiding"},{"id":"10","name":"Security"},
{"id":"11","name":"Mass Media"},{"id":"12","name":"Consulting"},
{"id":"13","name":"Medical care"}]',)]
1条答案
按热度按时间k4aesqcs1#
不要使用json_extract!您可以通过JSON.dumps将dict作为字符串插入,然后将其作为字符串读回到str变量中,并通过JSON. loads解包。