【发布时间】:2021-09-03 13:43:59
【问题描述】:
我正在尝试使用 python 将复杂的 JSON 模式转换为简单的电子表格。我的 JSON 看起来像这样
{
"type": "object",
"properties": {
"DataElement1": {
"type": "string",
"enum": [
"SUCCESS",
"ERROR"
],
"description": "XXXXX."
},
"DataElement2": {
"type": "object",
"properties": {
"DataElement3": {
"type": "string",
"description": "YYYYYY"
},
"DataElement4": {
"type": "string",
"description": "ZZZZZZ."
}
},
"description": "AAAAAAAA"
},
"DataElement5": {
"type": "object",
"properties": {
"DataElement6": {
"type": "number",
"description": "BBBBBBB"
},
"DataElement7": {
"type": "string",
"description": "CCCCCCCC"
},
"DataElement8": {
"type": "number",
"description": "DDDDDDDDD"
},
"required": [
"DataElement6"
],
"description": "EEEEEEEEEEE"
}
},
"required": [
"DataElement1",
"DataElement2"
]
}
}
输出应该只有 4 列,其中列出了所有不同的数据元素,如下所述。嵌套数据元素应与父数据元素组一起列出。
Data Element | Type | Description | Required
DataElement1 | string | XXXX | DataElement1
DataElement2 | string | AAAA | DataElement2
DataElement2.DataElement3 | string | YYYY |
DataElement2.DataElement4 | string | ZZZZ |
DataElement5 | number | EEEE |
DataElement5.DataElement6 | number | BBBB | DataElement6
DataElement5.DataElement7 | string | CCCC |
DataElement5.DataElement8 | number | DDDD |
谁能帮助分享一种使用 Python 将此 JSON 转换为 csv 格式的方法?
感谢您的帮助!
**
【问题讨论】:
-
你什么都没试过吗?这不是代码编写服务。这不是一个“复杂的 JSON”。
-
DataElement2 和 DataElement5 肯定应该有 Type == 'object'。
-
一个“模式”描述数据——它不是“实际”数据,所以除了一组没有实际数据行的 excel/CSV 标题之外,它不能变成任何东西,即它是将使用符合架构的数据填充的列的描述。
-
@TimRoberts 我对 python 编码相当陌生。我采用的方法是将完整的模式文件展平,然后将行映射到 csv 标题列。我能够展平文件,但将它们映射到列变得具有挑战性。也许方法本身不正确..我能够得到以下输出 - 类型:对象属性.DataElement1.type:字符串属性.DataElement1.enum[0]:成功属性.DataElement1.enum[1]:错误属性.DataElement1 .description :XXXXX。 properties.DataElement2.type : 对象
标签: python json pandas csv nested