从JSON文件提取数据的Python程序
我有一个包含从JSON文件提取数据的Python程序,python,json,Python,Json,我有一个包含数据和元数据的python文件 import requests from lxml import html import json with open("tmp.json") as json_file: json_data = json.load(json_file) print(json_data) 在输出中,我在JSON文件中获得数据和元数据。我只想提取数据部分。我怎么做 我的JSON文件的示例结构如下所示 "data": [
数据
和元数据
的python文件
import requests
from lxml import html
import json
with open("tmp.json") as json_file:
json_data = json.load(json_file)
print(json_data)
在输出中,我在JSON文件中获得数据
和元数据
。我只想提取数据部分。我怎么做
我的JSON文件的示例结构如下所示
"data": [
{
"AvInterval": null,
"DelInterval": null,
"ntsGenerated": null,
"ntsGenerated": null,
"Metric": "Intervals",
"Total": 23
},
{
"AvInterval": null,
"DelInterval": null,
"ntsGenerated": null,
"ntsGenerated": null,
"Metric": "CPU",
"Total": 47
},
],
"metadata": {
"columns": [
{
"Caption": "Metric",
"Field": "Metric",
"Type": "string",
"Width": "*"
},
{
"Caption": "Total",
"Field": "Total",
"Type": "long",
"Width": "*"
},
]
}
我想从上述文件中删除
元数据
,并将数据
切割成不同的片段,然后将每个片段写入一个文件。使用数据
键
json_data['data']
如果要将数据切割成不同的片段,并将每个片段写入自己的文件,可以执行以下操作:
with open("tmp.json") as json_file:
json_data = json.load(json_file)
for i, data_item in enumerate(json_data['data']):
fname = 'data_%s' % i
with open(fname, 'w') as outfile:
json.dump(data_item, outfile)
假设下面是json,试试这个
import simplejson as json
with open("tmp.json", "r") as json_file:
extracted_data = json.loads(json_file)
for data in extracted_data['data']:
print data['AvInterval'], data['Metric'], data['DelInterval']
下面是json示例
{
"data": [
{
"AvInterval": null,
"DelInterval": null,
"ntsGenerated": null,
"ntsGenerated": null,
"Metric": "Intervals",
"Total": 23
},
{
"AvInterval": null,
"DelInterval": null,
"ntsGenerated": null,
"ntsGenerated": null,
"Metric": "CPU",
"Total": 47
}
],
"metadata": {
"columns": [
{
"Caption": "Metric",
"Field": "Metric",
"Type": "string",
"Width": "*"
},
{
"Caption": "Total",
"Field": "Total",
"Type": "long",
"Width": "*"
}
]
}
}
假设我正确理解了您的问题,您应该能够做
json_data['data']
。在文件中共享json的示例结构,这将有助于清楚地回答,我还需要将jsondata
切割成不同的部分,并将其写入单独的文件中。如果需要AvInterval
fromdata
键,那么,json\u data['data']['AvInterval']
看起来像一个列表,所以json\u data['data'][0]['AvInterval']