使用json更新Python sqlite

2024-08-31 09:53:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用以下查询从sqlite数据集中更新列

rig_json = json.dumps(json.loads(f.read()))
query = """UPDATE session_rigs SET rig = '{}'  WHERE session = '{}'""".format(rig_json, session)

rig列的数据类型是TEXT,因此我必须加载JSON文件并将其转换为字符串。但是这个查询给了我一些错误:

sqlite3.OperationalError: near "purged_parameter": syntax error

我试过这样的方法:

query = """UPDATE session_rigs SET rig = '{}'  WHERE session = '{}'""".format({"a":"b"}, session)

而且效果很好


Tags: 数据jsonformatreadsqlitesessionupdatewhere
1条回答
网友
1楼 · 发布于 2024-08-31 09:53:33

你几乎肯定有报价问题。字符串包含单引号,这会把事情搞砸。这就是为什么不应该使用Python字符串格式来构建查询。让SQLite来修复它

rig_json = f.read()
query = "UPDATE session_rigs SET rig=? WHERE session=?;"
cur.execute( query, (rig_json, session) )

还要注意json.dumps(json.loads(xxx))是愚蠢的。要传递这个消息,首先必须是有效的JSON。只要读字符串

相关问题 更多 >