我有以下JSON字符串(来自维基百科http://en.wikipedia.org/wiki/JSON)
{
"name":"Product",
"properties":
{
"id":
{
"type":"number",
"description":"Product identifier",
"required":true
},
"name":
{
"type":"string",
"description":"Name of the product",
"required":true
},
"price":
{
"type":"number",
"minimum":0,
"required":true
},
"tags":
{
"type":"array",
"items":
{
"type":"string"
}
},
"stock":
{
"type":"object",
"properties":
{
"warehouse":
{
"type":"number"
},
"retail":
{
"type":"number"
}
}
}
}
}
我正在尝试使用Python json库解码此字符串。我想访问节点
properties - > stock - > properties - > warehouse
。
我理解json.loads()
函数将json字符串存储为字典。但在这种情况下,属性是我的关键,其下的所有内容都是值。如何访问上述节点。
import json
jsonText=""
file = open("c:/dir/jsondec.json")
for line in file.xreadlines():
jsonText+=line
data = json.loads(jsonText)
for k,v in data.items():
print k // shows name and properties
file.close();
由于
答案 0 :(得分:18)
您可以直接从文件中加载json,如下所示:
f = open("c:/dir/jsondec.json")
data = json.load(f)
根据您的输入字符串,data
现在是包含其他字典的字典。您可以像这样导航词典:
node = data['properties']['stock']['properties']['warehouse']
print str(node)