将JSON文件转换为表格格式的CSV文件

siv3szwd  于 2023-07-31  发布在  其他
关注(0)|答案(1)|浏览(98)

从Oracle Service Cloud Right Now API(reference)导出的分析报告是具有以下格式的JSON文件:

{
    "count": 2,
    "name": "filename",
    "columnNames": [
            "Name1",
            "Name2",
            "Name3",
            "Name4",
            "Name5"
    ],
    "rows": 
    [
        [
         "ValueColumn1Row1",
         "ValueColumn2Row1",
         "ValueColumn3Row1",
         "ValueColumn4Row1",
         "ValueColumn5Row1"
        ],
        [
         "ValueColumn1Row2",
         "ValueColumn2Row2",
         "ValueColumn3Row2",
         "ValueColumn4Row2",
         "ValueColumn5Row2"
        ]
    ],
    "links": 
    [
        {
        "rel": "self",
        "href": "https://somecompany.custhelp.com/services/rest/connect/v1.4/analyticsReportResults"
        }
    ]
}

字符串
但是为了处理数据,我需要一个csv格式的表格。此示例中的报表有五列,其中两行是值。
| 名称2|名称3|名称4|名称5| Name5 |
| --|--|--|--| ------------ |
| ValueColumn2Row1| ValueColumn3Row1| ValueColumn4Row1| ValueColumn5Row1| ValueColumn5Row1 |
| ValueColumn2Row2| ValueColumn3Row2| ValueColumn4Row2| ValueColumn5Row2| ValueColumn5Row2 |
我尝试了Powerery Query和不同的在线转换器。但它们似乎没有将列名标识为标题并在列中设置相应的值。除了“链接”部分。
在人类语言中,我可以这样定义转换过程:
1.从“columnNames”定义列名
1.从“行”中读取值(每个项目每隔五行)
1.设置相应列中的每个值
1.将结果另存为CSV文件
但我的编程技能非常非常基础。我希望有人能告诉我如何做。
亲切问候

im9ewurl

im9ewurl1#

您可以在python和pandas库的帮助下轻松实现这一点。
要安装:

pip install pandas

字符串
然后创建一个python文件,包含以下内容:

import pandas as pd
import json

# assuming json_data is your loaded json data

json_data = {
    "count": 2,
    "name": "filename",
    "columnNames": [
            "Name1",
            "Name2",
            "Name3",
            "Name4",
            "Name5"
    ],
    "rows": [
        [
         "ValueColumn1Row1",
         "ValueColumn2Row1",
         "ValueColumn3Row1",
         "ValueColumn4Row1",
         "ValueColumn5Row1"
        ],
        [
         "ValueColumn1Row2",
         "ValueColumn2Row2",
         "ValueColumn3Row2",
         "ValueColumn4Row2",
         "ValueColumn5Row2"
        ]
    ],
    "links": [
        {
        "rel": "self",
        "href": "https://somecompany.custhelp.com/services/rest/connect/v1.4/analyticsReportResults"
        }
    ]
}

# Converting json to dataframe
df = pd.DataFrame(json_data['rows'], columns=json_data['columnNames'])

# Write DataFrame to CSV
df.to_csv('output.csv', index=False)


脚本说明:
1.导入必要的库(pandas和json)。
1.阅读JSON数据。在本例中,我直接在脚本中定义了JSON数据。在您的情况下,您可以从文件中读取它。
1.将JSON数据转换为pandas DataFrame。这是pandas提供的表格数据结构,与数据库中的表非常相似。
1.将DataFrame写入CSV文件。index=False参数用于防止pandas写入行号。

相关问题