【发布时间】:2021-11-10 11:21:17
【问题描述】:
我有一个 JSON 字典列表,我想根据同一个字典中的另一个值从中提取一个值。我尝试了多种获取价值的方法,但我找不到任何有效的方法。字典列表可以有可变数量的字典,因此在使用编号括号时它并不总是给出正确的答案。 (['objectEntries'][0]['attributes'][5]["subValue"][0]['displayValue'])
objectEntries dict 列表包含更多的 dicts,但我将其删除了大小。我将遍历所有的 dicts 以提取相同的值。
我有一个 json:
{
"objectEntries": [
{
"label": "test",
"attributes": [
{
"id": 0,
},
{
"id": 1,
},
{
"id": 2,
},
{
"id": 3,
},
{
"id": 4,
},
{
"Id": 5,
"subValue": [
{
"displayValue": "This",
}
],
"objectId": 26085
},
],
"name": "test"
}
{
...
}
]
}
我想从 subValue.displayValue 中提取值“This”,其中 objectEntries.attributes.id = 5。 我对 JSON 还很陌生,所以如果能帮助我朝着正确的方向发展,我们将不胜感激。
到目前为止我所做的:
import json
import pandas as pd
with open('fulldump.json', 'r') as f:
data = json.load(f)
for object in data['objectEntries']:
name = object['name']
get = object['attributes'][5]['subValue'][0]['displayValue']
table.append([name, get])
df = pd.DataFrame(table, columns=['Name', 'Get'])
变量“get”的值通常是正确的,但对于某些objectEntries,属性中缺少一个或多个dict,这会导致get读取错误的值。
【问题讨论】:
-
你尝试过做什么?你能发布一个最小的可重现的例子吗?
-
我已经用我目前所做的编辑了这篇文章。我几乎不知道从这里去哪里。
标签: python json dictionary