猿问

用 CSV 数据填充 SQL 表时出现“KeyError”

我目前正在从事一个需要整理 OSM 数据(Udacity 课程)并将其添加到 SQLite 数据集以供查询的项目。


我目前正在尝试使用以下函数将“.csv”文件添加到现有 SQL 表中:


with open('crawley_nodes.csv','r', encoding = 'utf-8') as fin:

    dr = csv.DictReader(fin)

    to_db = [(i['id'], i['lat'], i['lon'], i['user'], i['uid'], i['version'], i['changeset'], i['timestamp']) for i in dr]

    cur.executemany("INSERT INTO nodes(id, lat, lon, user, uid, version, changeset, timestamp) VALUES (?,?,?,?,?,?,?,?);", to_db)


conn.commit()

但是,每次我尝试执行它时都会出现以下错误:


KeyError: 'id'

我很困惑为什么我会收到这个错误。也许是我整天在屏幕上花费的时间。


感谢您的任何指导/帮助。


小唯快跑啊
浏览 86回答 2
2回答

拉风的咖菲猫

id 是你的索引吗?df.reset_index(drop=False)

萧十郎

我发现了错误在哪里。事实上,我为 SQL 数据库准备的“.csv”文件在每个值旁边都有一个“b”值。这就是为什么它找不到我已经确定的密钥的原因。为了解决这个问题,我将我的 osm 修改为 csv 函数,以便正确创建 csv。
随时随地看视频慕课网APP

相关分类

Python
我要回答