【问题标题】:Flattening and mapping of keys of a nested JSON using python使用python对嵌套JSON的键进行展平和映射
【发布时间】:2020-01-20 00:19:35
【问题描述】:

我对 JSON 很陌生。我无法掌握 JSON 文件的结构。

我有一个类似这样的 Json 文件,

{"employeeId":{"0":02100, "1":02101, "2":02102,... "1000000":021000000},
 "employeeName":{"0":"Smith", "1":"John", "2":"Mark",... "1000000":"Dave"},
 "employeeDept":{"0":"Work", "1":"Art", "2":"Mop",... "1000000":"Clean"},
 "employeeAddress":"0":"CA", "1":"TX", "2":"UT",... "1000000":"DC"}

我需要使用 python 语言通过分别映射每个键的整数索引将其转换为扁平化 JSON,如下所示

{"employeeId": 02100,
 "employeeName":"Smith",
 "employeeDept":"Work",
 "employeeAddress":"CA"},

{"employeeId": 02101,
 "employeeName":"John",
 "employeeDept":"Art",
 "employeeAddress":"TX"},

{"employeeId": 02102,
 "employeeName":"Mark",
 "employeeDept":"Mop",
 "employeeAddress":"UT"},
.
.
.
{"employeeId": 021000000,
 "employeeName":"Dave",
 "employeeDept":"Clean",
 "employeeAddress":"DC"}

我试过了

sample_object1 = {"employeeId":{"0":"02100", "1":"02101", "2":"02102", "1000000":"021000000"},
 "employeeName":{"0":"Smith", "1":"John", "2":"Mark", "1000000":"Dave"},
 "employeeDept":{"0":"Work", "1":"Art", "2":"Mop", "1000000":"Clean"},
 "employeeAddress":{"0":"CA", "1":"TX", "2":"UT", "1000000":"DC"}}

from pandas.io.json import json_normalize
json_normalize(sample_object1)

我得到了这个


employeeAddress.0   employeeAddress.1   employeeAddress.1000000 employeeAddress.2   employeeDept.0  employeeDept.1  employeeDept.1000000    employeeDept.2  employeeId.0    employeeId.1    employeeId.1000000  employeeId.2    employeeName.0  employeeName.1  employeeName.1000000    employeeName.2
0   CA  TX  DC  UT  Work    Art Clean   Mop 02100   02101   021000000   02102   Smith   John    Dave    Mark

【问题讨论】:

  • 听起来很简单,你试过什么?
  • 新人;欢迎来到堆栈溢出。在本网站寻求帮助时,预计您将首先进行研究并尝试解决方案。我建议你搜索一下在 python 中使用 json。你会发现很多很好的教程。

标签: python json dictionary key flat


【解决方案1】:

这就是答案,

sample_object = {"employeeId":{"0":"02100", "1":"02101", "2":"02102", "1000000":"021000000"},
 "employeeName":{"0":"Smith", "1":"John", "2":"Mark", "1000000":"Dave"},
 "employeeDept":{"0":"Work", "1":"Art", "2":"Mop", "1000000":"Clean"},
 "employeeAddress":{"0":"CA", "1":"TX", "2":"UT", "1000000":"DC"}}
import pandas as pd
d = pd.DataFrame(sample_object)
d.to_json(orient = "records")

这是预期的输出

'[{"employeeId":"02100","employeeName":"Smith","employeeDept":"Work","employeeAddress":"CA"},{"employeeId":"02101","employeeName":"John","employeeDept":"Art","employeeAddress":"TX"},{"employeeId":"021000000","employeeName":"Dave","employeeDept":"Clean","employeeAddress":"DC"},{"employeeId":"02102","employeeName":"Mark","employeeDept":"Mop","employeeAddress":"UT"}]'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-09
    • 2014-04-08
    • 2019-01-26
    • 2020-01-21
    • 2018-10-30
    • 2021-11-28
    • 2021-10-19
    相关资源
    最近更新 更多