【问题标题】:Converting a dictionary where each value is a list and each item in that list is another dictionary into a tuple将每个值都是一个列表并且该列表中的每个项目都是另一个字典的字典转换为元组
【发布时间】:2023-01-29 00:43:15
【问题描述】:

我有一本字典,其中每个键都是一个 ID 号,每个值都是一个字典列表,所以它看起来像这样:{'id number':[{'key1a': 'value1a', 'key2a': 'value2a' , 'key3a': 'value3a'},{'key1b': 'value1b', 'key2b': 'value2b', 'key3b': 'value3b'}], 'id number'...etc.} 字典键列表中的内容总是相同的,这些词典中总是有 3 个项目,但是,这些列表的长度各不相同。

我想做的是使用 psycopg2 将这本字典输入到 PostgreSQL 中。从我从文档中看到的,最好以元组的形式输入,所以我试图将这些信息转换成元组列表。诀窍是,对于与之配对的每个值字典项,我需要 ID 键保持不变,作为元组中的第一项。

所以元组列表应该看起来像这样 [(10001, 1a, 2a, 3a), (10001, 1b, 2b, 3b), (10002,...), 等,这样表格看起来像下面的, 如果我没错的话。

ID value1 value2 value3
10001 a a a
10001 b b b

我试过像这样迭代: for key in dict: for i in key: print(i) (缩进正确),但这只会打印 id 中的实际字符。任何帮助,将不胜感激。我可能让它变得比我需要的更复杂。

【问题讨论】:

    标签: python list dictionary tuples psycopg2


    【解决方案1】:

    据我所理解的问题陈述,这是它的示例代码。我已将您的示例输入作为参考并用 python 编码。

    d={111:[{'key1a': 'value1a', 'key2a': 'value2a', 'key3a': 'value3a'},{'key1b': 'value1b', 'key2b': 'value2b', 'key3b': 'value3b'}],222:[{'key1a': 'value1a', 'key2a': 'value2a', 'key3a': 'value3a'},{'key1b': 'value1b', 'key2b': 'value2b', 'key3b': 'value3b'}]}
    ansList = []
    for keys in d:
        tup=()
        tup+=(keys,)
        for i in d[keys]:
            for secKeys in i:
                tup+=(i[secKeys],)
        ansList.append(l)
    print(ansList)
    

    输出:[(111, 'value1a', 'value2a', 'value3a', 'value1b', 'value2b', 'value3b'), (222, 'value1a', 'value2a', 'value3a', 'value1b', 'value2b', 'value3b')]

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-05-04
      • 2021-07-16
      • 2016-09-14
      • 2015-11-11
      • 1970-01-01
      • 1970-01-01
      • 2012-11-12
      相关资源
      最近更新 更多