gpt4 book ai didi

Python 导入 XML 介绍 SQLITE (xmltodict)

转载 作者:太空宇宙 更新时间:2023-11-04 03:31:37 33 4
gpt4 key购买 nike

我正在尝试解析 XML 文件并将其导入 SQLITE 数据库。

XML 看起来像这样:

<resultset>
<row>
<column name="pct_lucru">unit name</column>
<column name="cod_comercial">00032749</column>
<column name="denumire_med">stuff name</column>
<column name="producator">fabri</column>
<column name="tip_produs">koops</column>
<column name="tva">24.000000</column>
<column name="umc">1</column>
<column name="furnizor">FURNIZORI DIVERSI</column>
<column name="data_expirarii">2015-12-31</column>
<column name="lot">80063</column>
<column name="cant_fl">1</column>
<column name="fractie">0</column>
<column name="cantitate">1</column>
<column name="pret_intr">62.930000</column>
<column name="val_intr">62.930000</column>
<column name="pret_fl">82.720000</column>
<column name="valoare">82.720000</column>
</row>
</resultset>

我有以下 python 代码

import xmltodict
import sqlite3

conn = sqlite3.connect("test.sqlite")
c = conn.cursor()

with open("export.xml") as fd:
obj = xmltodict.parse(fd.read())

for row in obj["resultset"]["row"]:
for column in row["column"]:
c.execute("INSERT INTO stocks ? VALUES '?'", [column["@name"], column["#text"]])
print "item inserted \n"

产生以下错误

Traceback (most recent call last):
File "dbimport.py", line 12, in <module>
c.execute("INSERT INTO stocks ? VALUES '?'", [column["@name"], column["#text"]])
sqlite3.OperationalError: near "?": syntax error

我在这里做错了什么?我以前使用过这种方法并且它工作得很好,尽管不是 XML 文件。

最佳答案

? 只能用于值,不能用于列名。这个

INSERT INTO stocks ? VALUES '?'

无效。你必须使用

INSERT INTO stocks (columnname) VALUES (?)

请注意 ? 周围遗漏的引号。在代码中:

c.execute("INSERT INTO stocks ({}) VALUES (?)".format(column["@name"]), column["#text"])

关于Python 导入 XML 介绍 SQLITE (xmltodict),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30933179/

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