Python数据帧的嵌套JSON数组

Python数据帧的嵌套JSON数组,python,arrays,json,pandas,json-normalize,Python,Arrays,Json,Pandas,Json Normalize,我正在尝试扩展熊猫数据框架中的嵌套json数组 这就是我的JSON: [ { "id": "0001", "name": "Stiven", "location": [{ "country": "Colombia", "department": "Chocó", "city": "Quibdó" }, {

我正在尝试扩展熊猫数据框架中的嵌套json数组

这就是我的JSON:

[ {
        "id": "0001",
        "name": "Stiven",
        "location": [{
                "country": "Colombia",
                "department": "Chocó",
                "city": "Quibdó"
            }, {
                "country": "Colombia",
                "department": "Antioquia",
                "city": "Medellin"
            }, {
                "country": "Colombia",
                "department": "Cundinamarca",
                "city": "Bogotá"
            }
        ]
    }, {
        "id": "0002",
        "name": "Jhon Jaime",
        "location": [{
                "country": "Colombia",
                "department": "Valle del Cauca",
                "city": "Cali"
            }, {
                "country": "Colombia",
                "department": "Putumayo",
                "city": "Mocoa"
            }, {
                "country": "Colombia",
                "department": "Arauca",
                "city": "Arauca"
            }
        ]
    }, {
        "id": "0003",
        "name": "Francisco",
        "location": [{
                "country": "Colombia",
                "department": "Atlántico",
                "city": "Barranquilla"
            }, {
                "country": "Colombia",
                "department": "Bolívar",
                "city": "Cartagena"
            }, {
                "country": "Colombia",
                "department": "La Guajira",
                "city": "Riohacha"
            }
        ]
    }
]
这就是我的数据帧:

索引id名称位置
0 0001斯蒂文[{'country':'Colombia','department':'Chocó','city':'Quibdó'},{'country':'Colombia','department':'Antioquia','city':'Medellin'},{'country':'Colombia','department':'Cundinamarca','city':'Bogotá]
1 0002 Jhon Jaime[{'country':'Colombia','department':'Valle del Cauca','city':'Cali',{'country':'Colombia','department':'Putumayo','city':'Mocoa'},{'country':'Colombia','department':'Arauca','city':'Arauca'}]
2 0003旧金山[{'country':'Colombia','department':'Atlántico','city':'Barranquilla'},{'country':'Colombia','department':'Barranquilla','department':'Bolívar','city':'Cartagena'},{'country':'Colombia','department':'La Guajira','city':'Riohacha']
我需要将每个id转换为dataframe,如下所示:

索引id名称国家部门城市
0 0001斯蒂文哥伦比亚乔科基布多
10001斯蒂文哥伦比亚安蒂奥基亚麦德林
2000年哥伦比亚斯迪文Cundinamarca Bogotá
3 0002 Jhon Jaime Colombia Valle del Cauca Cali
40002 Jhon Jaime Colombia Putumayo Mocoa
5 0002 Jhon Jaime Colombia Arauca Arauca
60003弗朗西斯科哥伦比亚亚特兰提科·巴兰基拉
7 0003弗朗西斯科哥伦比亚玻利瓦尔卡塔赫纳
8003弗朗西斯科哥伦比亚拉瓜吉拉里奥哈查
提前感谢。

  • 如果从文件加载
    JSON
    ,请使用
    JSON.loads
    ,但如果
    JSON
    直接来自API,则可能不需要
  • meta
    参数一起使用,将
    JSON
    转换为数据帧
将熊猫作为pd导入
从pathlib导入路径
导入json
#文件路径
p=Path(r'c:\Path\u to\u file\test.json')
#读取json
p.open('r',encoding='utf-8')作为f:
data=json.load(f.read())
#创建数据帧
df=pd.json_规范化(数据、记录路径='location',元=['id','name'])
#输出
国家部门城市id名称
哥伦比亚ChocóQuibdó0001斯蒂文
哥伦比亚安蒂奥基亚麦德林0001斯蒂文
哥伦比亚哥伦比亚首都波哥大0001斯蒂文
哥伦比亚考卡卡利谷0002杰汉海姆
哥伦比亚Putumayo Mocoa 0002 Jhon Jaime
哥伦比亚Arauca Arauca 0002 Jhon Jaime
哥伦比亚亚特兰提科巴兰基拉0003旧金山
哥伦比亚玻利瓦尔卡塔赫纳0003旧金山
哥伦比亚拉瓜吉拉里奥哈查0003旧金山