从JSON文件解析值?
我有一个文件中的这个JSON:
{
"maps": [
{
"id": "blabla",
"iscategorical": "0"
},
{
"id": "blabla",
"iscategorical": "0"
}
],
"masks": [
"id": "valore"
],
"om_points": "value",
"parameters": [
"id": "valore"
]
}
我写了这个脚本来打印所有的json文本:
json_data=open(file_directory).read()
data = json.loads(json_data)
pprint(data)
我如何解析文件并提取单个值?
我想伊格纳西奥说的是你的JSON文件不正确。 当你有{}
时,你有[]
。 []
用于列表, {}
用于字典。
以下是您的JSON文件的外观,您的JSON文件甚至不会为我加载:
{
"maps": [
{
"id": "blabla",
"iscategorical": "0"
},
{
"id": "blabla",
"iscategorical": "0"
}
],
"masks": {
"id": "valore"
},
"om_points": "value",
"parameters": {
"id": "valore"
}
}
然后你可以使用你的代码:
import json
from pprint import pprint
with open('data.json') as f:
data = json.load(f)
pprint(data)
有了数据,你现在也可以找到像这样的值:
data["maps"][0]["id"]
data["masks"]["id"]
data["om_points"]
尝试一下,看看它是否开始有意义。
你的data.json
应该是这样的:
{
"maps":[
{"id":"blabla","iscategorical":"0"},
{"id":"blabla","iscategorical":"0"}
],
"masks":
{"id":"valore"},
"om_points":"value",
"parameters":
{"id":"valore"}
}
你的代码应该是:
import json
from pprint import pprint
with open('data.json') as data_file:
data = json.load(data_file)
pprint(data)
请注意,这只适用于Python 2.6及更高版本,因为它取决于with
-statement。 在Python 2.5中,使用from __future__ import with_statement
,在Python <= 2.4中,请参阅Justin Peel的答案,该答案基于此。
您现在也可以像这样访问单个值:
data["maps"][0]["id"] # will return 'blabla'
data["masks"]["id"] # will return 'valore'
data["om_points"] # will return 'value'
data = []
with codecs.open('d:output.txt','rU','utf-8') as f:
for line in f:
data.append(json.loads(line))
链接地址: http://www.djcxy.com/p/989.html