我有一个字典,其中每个键是一个ID号,每个值是一个字典列表,所以它看起来像这样:{“身份证号”:[{“密钥1a”:“值1a”、“键2a”:“值2a”、“键3a”:'值3a'},{'键1b':“值1b”、“键2b”:“值2b”、“键3b”:'value 3b'}],'id number'...等。}列表中的字典键始终相同,并且这些字典中始终有3个项目,但是,这些列表的长度各不相同。,
我尝试做的是用psycopg 2把这个字典输入到PostgreSQL中。从我在文档中看到的,最好是以元组的形式输入,所以我尝试把这个信息转换成元组列表。诀窍是,我需要ID键保持不变,对于它配对的每个值字典项,它都是元组中的第一项。
因此,元组列表应该如下所示[(10001,1a,2a,3a),(10001,1b,2b,3b),(10002,...),等等。这样,如果我没有记错的话,表应该如下所示。
| 识别号|值1|值2|值3|
| - ------|- ------|- ------|- ------|
| 小行星|项目a|项目a|项目a|
| 小行星|B|B|B|
我试过这样的迭代:for key in dict: for i in key: print(i)
(右缩进),但这只是打印id中的实际字符。任何帮助都将不胜感激。我可能使它比我需要的更复杂。
2条答案
按热度按时间rur96b6h1#
就我对问题陈述的理解而言,这是一个示例代码,我以你的示例输入作为参考,它是用python编写的。
输出:[(111,“值1a”,“值2a”,“值3a”),(111,“值1b”,“值2b”,“值3b”),(222,“值1a”,“值2a”,“值3a”),(222,“值1b”,“值2b”,“值3b”)]
dxpyg8gm2#
修改
dict
以获取列表的列表。将数据插入表中
上面使用的
executemany
伸缩性不好。如果你要插入大量的值,那么:这使用了Fast execution helpers中的
execute_batch
,它批量插入(在本例中)数据,而不是像executemany
那样迭代数据。