Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从JSON文件提取数据的Python程序_Python_Json - Fatal编程技术网

从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的示例结构,这将有助于清楚地回答,我还需要将json
data
切割成不同的部分,并将其写入单独的文件中。如果需要
AvInterval
from
data
键,那么,
json\u data['data']['AvInterval']
看起来像一个列表,所以
json\u data['data'][0]['AvInterval']