python - 使用 pandas 标准化器展平 Json 文件数据

标签 python json pandas

我想展平复杂的嵌套 json 文件。请找到下面的示例 json 数据

{
  "applications": [
  {
      "id": 87334412,
      "name": "cdata1",
      "language": "known",
      "health_status": "unknown",
      "reporting": true,
      "last_reported_at": "2017-10-06T06:30:55+00:00",
      "application_summary": {
        "response_time": 1.2,
        "throughput": 216,
        "error_rate": 0,
        "target": 0.5,
        "ascore": 1,
        "host_count": 3,
        "instance_count": 3
      },
      "settings": {
        "column": 0.5,
        "columns": 7,
        "columns1": true,
        "columns2": false
      },
      "links": {
        "application_data": [
          93818199,
          93819351,
          93819359
        ],
        "servers": [],
        "application_content": [
          32006189,
          87342924,
          47565225
        ]
      }
    },

代码使用:

import json
from pandas.io.json import json_normalize
json_file=open('ptr1.json')
json_data=json.load(json_file)
#print json_data["applications"]
for line in json_data:
    data=json_normalize(line,['name','id'])
    print data

任何人都可以帮忙获取以下数据名称、id、last_reported_at、instance_count。注意 json 文件包含许多 id 详细信息

最佳答案

IIUC:

In [34]: d = json.loads(json_str)

In [35]: cols = ['id','name','last_reported_at','application_summary.instance_count']

In [36]: pd.io.json.json_normalize(d['applications'])[cols]
Out[36]:
         id    name           last_reported_at  application_summary.instance_count
0  87334412  cdata1  2017-10-06T06:30:55+00:00                                   3
1  87334444  cdata2  2017-10-05T06:30:55+00:00                                   3

关于python - 使用 pandas 标准化器展平 Json 文件数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46600692/

相关文章:

javascript - 如何使用 JavaScript 检查 JSON 键是否具有特定单词?

json - 来自 json 的 Gatsby 图像路径

python - 如何在 Pandas 中将数据格式更改为 '%Y%m%d'?

python - 使用python控制线程中的循环

python - 是否可以通过训练小数据子集来验证深度学习模型?

python - 使用点 (.) 访问字典键

python - 如何在 Python 中的单独线程中启动 win32 应用程序

javascript - 获取转换为 JSON 对象的问题

python - 如何从多个 csv 文件创建数据帧字典

python - 获取 DataFrame 中特定行之后的第一次出现