【问题标题】:Creating a list of dictionaries in Python (large amount of data)在 Python 中创建字典列表(大量数据)
【发布时间】:2021-12-29 16:42:24
【问题描述】:

我通过 json.loads 导入了大量数据,我希望将这些数据存储为多个字典列表。

我使用了这个代码:

def make_dictionary(l):
   list_of_dicts = []
   for i in range(0, len(l), 2):
       list_of_dicts.append({l[i]:l[i+1]})
   return list_of_dicts

products_dicts = make_dictionary(products_list)
print(products_dicts[:1])

我使用的产品列表的格式如下(仅前 3 项):


['{"Username": "bkpn1412", "DOB": "31.07.1983", "State": "Oregon", "Reviewed": ["cea76118f6a9110a893de2b7654319c0"]}\n', '{"Username": "gqjs4414", "DOB": "27.07.1998", "State": "Massachusetts", "Reviewed": ["fa04fe6c0dd5189f54fe600838da43d3"]}\n', '{"Username": "eehe1434", "DOB": "08.08.1950", "State": "Idaho", "Reviewed": []}\n']

类类型表明 make_dictionary 函数正在返回一个列表,其中的第一个元素是字典。

输出如下:

[{'{"Username": "bkpn1412", "DOB": "31.07.1983", "State": "Oregon", "Reviewed": ["cea76118f6a9110a893de2b7654319c0"]}\n': '{"Username": "gqjs4414", "DOB": "27.07.1998", "State": "Massachusetts", "Reviewed": ["fa04fe6c0dd5189f54fe600838da43d3"]}\n'}]

但是我无法访问字典中的键,并且被告知此数据结构不是字典列表。

谁能给点建议?

【问题讨论】:

  • 请提供您正在处理的列表的一个小示例,以便我可以运行您的应用
  • 还请添加所需输出的硬编码示例
  • 您能否提供一个 json 片段,您可以从中加载数据?

标签: python list dictionary


【解决方案1】:

您的产品列表的每个元素都是一个字符串,这意味着在将它们附加到您的字典列表时必须将它们转换为字典。 json.loads() 方法用于将 json 数据解析成字典:

import json
productlist = ['{"Username": "bkpn1412", "DOB": "31.07.1983", "State": "Oregon", "Reviewed": ["cea76118f6a9110a893de2b7654319c0"]}\n', '{"Username": "gqjs4414", "DOB": "27.07.1998", "State": "Massachusetts", "Reviewed": ["fa04fe6c0dd5189f54fe600838da43d3"]}\n', '{"Username": "eehe1434", "DOB": "08.08.1950", "State": "Idaho", "Reviewed": []}\n']

def make_dictionary(l):
   list_of_dicts = []
   for i in l:
       list_of_dicts.append(json.loads(i))
   return list_of_dicts

products_dicts = make_dictionary(productlist)
print(products_dicts[0]["Username"])

运行此命令将返回列表“bkpn1412”中第一个元素的用户名。

【讨论】:

    猜你喜欢
    • 2017-02-16
    • 1970-01-01
    • 1970-01-01
    • 2023-02-07
    • 2017-05-05
    • 2020-05-12
    • 2013-10-26
    • 2014-07-25
    • 1970-01-01
    相关资源
    最近更新 更多