首页 > 解决方案 > 展平嵌套的json以分隔python中的列

问题描述

我正在使用已转换为 json 格式的表。目前,它采用以下格式:

 [
  {
    "Reg-Data": [
      {
        "con_id": 50,
        "con_name": "Blueberry",
        "fruit_con_id": 60,
        "end_date": 1361923200000,
        "start_date": 1349049600000,
        "fruit_count": 6
      },
      {
        "con_id": 13,
        "con_name": "Banana",
        "fruit_con_id": 145,
        "end_date": 1376352000000,
        "start_date": 1376352000000,
        "fruit_count": 1
      },
      {
        "con_id": 135,
        "con_name": "Watermelon",
        "fruit_con_id": 150,
        "end_date": 1370649600000,
        "start_date": 1370563200000,
        "fruit_count": 1
      }
    ],
    "crop_number": 1,
    "farmer_id": 1
  } ]

目标是将 python 中的嵌套 json 扁平化为数据框中的单独列,同时将一列保持为 json 格式。

预期结果:

  Farmer_id | Crop_number | Crop_info
     1      |      1      | {
            |             | "con_id": 50,
            |             | "con_name": "Blueberry",
            |             |  "fruit_con_id": 60,
            |             |  "end_date": 1361923200000,
            |             |  "start_date": 1349049600000,
            |             |  "fruit_count": 6
                             },
                             {
                            "con_id": 13,
                            "con_name": "Banana",
                            "fruit_con_id": 145,
                            "end_date": 1376352000000,
                            "start_date": 1376352000000,
                            "fruit_count": 1
                             },
                             {
                            "con_id": 135,
                            "con_name": "Watermelon",
                            "fruit_con_id": 150,
                            "end_date": 1370649600000,
                            "start_date": 1370563200000,
                            "fruit_count": 1
                             }

标签: pythonjsonpandas

解决方案


你必须使用熊猫:

import pandas as pd
df = pd.read_json('json-file-path')
df.head()

推荐阅读