试图将数据插入数据库,但出现以下错误:KeyError:';标识符';(Python)
我想要完成的是从API端点抓取数据并将其存储为CSV。然后将CSV文件导入SQLite数据库。我可以从API中获取数据,并输出到CSV文件中。但是将CSV文件中的数据存储到SQLite是一个问题。我不断地发现这个错误:试图将数据插入数据库,但出现以下错误:KeyError:';标识符';(Python),python,csv,python-requests,Python,Csv,Python Requests,我想要完成的是从API端点抓取数据并将其存储为CSV。然后将CSV文件导入SQLite数据库。我可以从API中获取数据,并输出到CSV文件中。但是将CSV文件中的数据存储到SQLite是一个问题。我不断地发现这个错误: Traceback (most recent call last): File "info.py", line 46, in <module> i['col1'], i['col2'], i['col3'], i['col4'], i['c
Traceback (most recent call last):
File "info.py", line 46, in <module>
i['col1'], i['col2'], i['col3'],
i['col4'], i['col5']) for i in dr]
File "info.py", line 46, in <listcomp>
i['col1'], i['col2'], i['col3'],
i['col4'], i['col5']) for i in dr]
KeyError: 'col1'
此命令的输出(
print(next(dr))
):
csv文件中的分隔符为“
”;”代码>而不是默认的,'
。因此它将整行作为一个条目读取,因为它试图在不存在的逗号处拆分它
在dictsdr
数组中使用dr=csv.DictReader(fin,delimiter=';')
,您没有标识符键。准确地说,您的csv可能没有标识符column@ArpitSolanki标识符列存在..但它没有“标识符”。它输出时不带->“”仅如下。。identifierafterdr=csv.DictReader(fin)
,如果你插入一行print(next(dr))
,它会打印出什么?另外,如果你刚刚读了文件,第一行的内容是什么?@e.s.我会在上面输出它,因为行太长了xD我想给你一个大大的拥抱和亲吻=D不,如果你有时间,我们可以在私人聊天室聊天吗?还有一些问题我想问你。再一次,没有人,呵呵
import requests
import csv
import sqlite3
con = sqlite3.connect("business.db")
cur = con.cursor()
cur.execute('DROP TABLE IF EXISTS firms')
cur.execute(
"CREATE TABLE firms (col1 PRIMARY KEY, col2 TEXT, col3 TEXT, "
"col4 TEXT, col5 TEXT,...);"
)
r = requests.get('http://url/url/url')
outfile = open(r"C:\Users\...\test.csv", "w")
outfile.write(r.text)
with open(r'C:\Users\...\...\test.csv', 'r') as fin:
dr = csv.DictReader(fin)
to_db = [(i['col1'], i['col2'], i['col3'], i['col4'], i['col5'], ...) for i in dr]
cur.executemany("INSERT INTO firms (col1, col2, col3, col4, col5, "...) VALUES (?, ?, ?, ?, ?, "
"...);", to_db)
con.commit()
con.close()
OrderedDict([('col1;"col2";"col3";"col4";"col5";"..."', 'value1;"value2";
"value3";"value4";"value5";"..."')])