gpt4 book ai didi

python - 将字典插入到在 Python 中使用 JSON 创建的 SQL 数据库中

转载 作者:行者123 更新时间:2023-12-01 09:15:23 26 4
gpt4 key购买 nike

我有一个 JSON 文件,我从中读取数据并获取字典,我希望将这个完整的字典插入到 SQL Server 数据库中,以便可以从数据库中将其作为字典读取。

但是在插入相同内容后,我收到如下错误。

07/13/2018 11:25:00: ERROR: Exception 102:
Incorrect syntax near 'camera'.DB-Lib error

Msg 102, severity 15:
General SQL Server error: Check messages from the SQL Server

下面是我的 INSERT 查询。

INSERT INTO hw_info (hostname, peripheralsInfo)
VALUES ('linux-host', '{u'camera': {u'ab': {u'model': u'Model1', u'version': u'Version1', u'selectorMask': u'Data1'}, u'cd': {u'model': u'Model2', u'version': u'Version2', u'selectorMask': u'Data2'}}}')

如何将这个字典插入到数据库中?

最佳答案

要将 json 插入数据库,不要将其转换为 Python 对象;只需存储从文件中读取的字符串即可。

with open(peripheralsJsonFile).read() as f:
peripheralsInfo = f.read()

myquery = """INSERT INTO hw_info(hostname, peripheralsInfo) VALUES(%s,%s)"""

cursor.execute(myquery, (hostname, peripheralsInfo))

当您稍后想要在程序中使用数据时,您可以通过 json.loads() 传递 SELECT 查询中的字符串,使其成为 Python 对象。

编辑

这里有两点说明。

  1. prefipheralsInfo = open(peripheralsJsonFile).read() 读取后无法正确关闭文件,因此我使用了 context manager它会在幕后处理这些事情。

  2. 您可以使用 Python 的字符串插值来格式化查询字符串。这使得您的程序容易受到 SQL injection attacks 的攻击。 。在我的示例中,我使用 parameterized query来规避该漏洞。参数还有助于确保您的输入作为正确的数据类型传递到数据库。

关于python - 将字典插入到在 Python 中使用 JSON 创建的 SQL 数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51318559/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com