Python - ValueError:使用Sqlite时

时间:2017-02-23 19:51:32

标签: json python-2.7 loops dictionary sqlite

所以我是python的新手,并且正在尝试使用Sqlite将一些数据放入数据库中。
数据是带有字典列表的JSON。每个dictinary的最后一个条目是另一个带字典的列表(参见下面的数据,文件中的第一个条目)。除了最后一部分(即字典列表)之外,从列表中的每个字典中提取数据都很好。我无法正确地完成它。我把它放在我的代码中的一个函数中,以便能够调用不同的url(错误消息仍然是指' WriteToFactionSpread',函数的名称)

数据:https://eddb.io/archive/v5/systems_populated.json

我的代码:

uh = urllib.urlopen(url)

input = json.loads(uh.read())


cur.execute('''CREATE TABLE IF NOT EXISTS FactionSpread(minor_faction_id 
INTEGER PRIMARY KEY, state_id INTEGER, influence INTEGER, state TEXT)''')
conn.commit()


for i in input:
    cur.execute('''INSERT INTO FactionSpread (minor_faction_id, state_id, influence, state )VALUES (?, ?, ?, ?)''', (i['minor_faction_presences'][0]['minor_faction_id'], i['minor_faction_presences'][1]['state_id']
            , i['minor_faction_presences'][2]['influence'], i['minor_faction_presences'][3]['state']))

conn.commit()
uh.close()

错误:

Traceback (most recent call last):
  File "E:\Python\EliteDangerous\trial.py", line 34, in <module>
    WriteToFactionSpread(ab)
  File "E:\Python\EliteDangerous\trial.py", line 27, in WriteToFactionSpread
    (i['minor_faction_presences'][0]['minor_faction_id']))
ValueError: parameters are of unsupported type

(我希望格式化不会在这里复制/粘贴它,但我觉得它没问题。)

我没有在实际数据中复制粘贴,因为它会把它挤掉一点但链接会转到一个JSON文件,其中包含游戏Elite Dangerous的数据。

尝试了一些不同的方法,但此刻我不知所措,我仍然是绿色的。

0 个答案:

没有答案