首页 > 解决方案 > Python:如何将 JSON 中的值设置为列表中的索引?

问题描述

我正在尝试读取数据集并将 JSON 文件的整数值设置为列表的数组。这是示例 JSON 文件,

[{
"index_id": "1234",
"text": "hello world",
},
{
"index_id": "5678",
"text": "roses are red",
}]

现在,我刚刚尝试读取 JSON 文件并将所有内容放入 defaultdict(list),这使事情变得混乱。假设我将所有内容都读到L1

如果我尝试获取L1[1234],则会出现错误,因为1234不是 L1 中的有效索引,并且索引为 0,1。

如果打印了 L1,

{u'1234': u'hello world'}, {u'5678': u'roses are red'}]

我知道该列表具有我对索引的潜在价值,作为存储的值并以 unicode 形式存储(使情况变得更糟)。

那么如何将L1变成一个方法,所以如果我尝试拉起L1[1234]它会拉起'hello world'

{1234: u'hello world'}, {5678: u'roses are red'}]

谢谢

已编辑:更改了 JSON。

标签: pythonjsonlist

解决方案


假设您有一个 dicts 列表,您可以执行以下操作:

json_lst = [{
    "1234": "hello world"
}, 
{
    "5678": "roses are red"
}]

result = {int(k) : v  for element in json_lst for k, v in element.items()}
print(result[1234])

输出

hello world

上面的字典理解等价于下面的嵌套循环:

result = {}
for element in json_lst:
    for k, v in element.items():
          result[int(k)] = v 

推荐阅读