【发布时间】:2014-10-20 10:43:12
【问题描述】:
在 python 中解析 json(来自 freebase 的响应)
这个问题是关于JSON 解析的。我正在查询 freebase 以获取一些数据并获取 JSON 对象。响应具有以下结构
{
"result": [
{
"attribute0": [
"attrbVal0"
],
"attribute1": [],
"attribute2": "attrbVal1",
"attribute3": [
"val1",
"val2"
],
"creator": "abc",
"key": [
"val2",
"val3"
]
}
]
}
请注意,属性可以有零值到任意数量的值。当没有值时,它表示为 [] 或 null。 我不知道这组属性。它随着查询的变化而变化,所以我不能硬编码这样的值
result['attribute2'];
从上面的JSON我想获取值为[]或null的属性。
我已经尝试过以下事情来获取属性和值,
print response.keys()
打印结果
for r in response['result']:
print r
这会一次性打印结果中的所有内容。那就是
print len(result) #prints 1
我尝试了以下方法来获取属性列表,但没有成功。
result = response['result']
elem = json.loads(result);
keys = elem.keys()
所以我正在寻找从上述 json 中获取所有键值对的代码以及一些指出我的错误的解释。
【问题讨论】:
-
response["result"]是一个字典列表(在你的情况下,只有一个字典)。 -
我已经根据实际的嵌套结构重新格式化了你的 JSON,这应该会让你的错误更清楚。