如何使用 Python 将 CSV 文件转换为带有嵌套 json 对象的 JSON 文件?

罗勒

我遇到了一个问题,我不知道如何将 CSV 文件中的“嵌套 JSON 对象”转换为 JSON 对象。

所以我有一个具有以下值的 CSV 文件:

数据.csv

1, 12385, {'message': 'test 1', 'EngineId': 3, 'PersonId': 1, 'GUID': '0ace2-02d8-4eb6-b2f0-63bb10829cd4s56'}, 6486D, TestSender1
2, 12347, {'message': 'test 2', 'EngineId': 3, 'PersonId': 2, 'GUID': 'c6d25672-cb17-45e8-87be-46a6cf14e76b'}, 8743F, TestSender2

我编写了一个 python 脚本,将这个 CSV 文件转换为数组内的 JSON 文件。这是我使用以下 python 脚本完成的

csvToJson.py

import json
import csv


with open("data.csv","r") as f:
    reader = csv.reader(f)
    data = []
    for row in reader:
        data.append({"id": row[0],
        "receiver": row[1],
        "payload": row[2],
        "operator": row[3],
        "sender": row[4]})

with open("data.json", "w") as f:
    json.dump(data, f, indent=4)

我面临的问题是我没有在“有效载荷”中获得正确的值,我希望它是一个嵌套的 JSON 对象。我得到的结果如下:

数据.json

[
    {
        "id": "1",
        "receiver": " 12385",
        "payload": " {'message': 'test 1'",
        "operator": " 'EngineId': 3",
        "sender": " 'PersonId': 1"
    },
    {
        "id": "2",
        "receiver": " 12347",
        "payload": " {'message': 'test 2'",
        "operator": " 'EngineId': 3",
        "sender": " 'PersonId': 2"
    }
]

所以我的问题是,当我进行从 CSV 到 JSON 的转换时,如何为“有效载荷”创建嵌套的 JSON 对象?我认为主要问题是它被视为一个字符串而不是一个对象。

苏特利亚科夫

请尝试以下操作。您可以像以前一样执行所有操作,但合并回第 3 列中的所有元素并通过ast.literal_eval.

import json
import csv
import ast    

with open("data.csv","r") as f:
    reader = csv.reader(f,skipinitialspace=True)
    data = [{"id": ident,
             "receiver": rcv,
             "payload": ast.literal_eval(','.join(payload)),
             "operator": op,
             "sender": snd}
            for ident,rcv,*payload,op,snd in reader]

with open("data.json", "w") as f:
    json.dump(data, f, indent=4)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用python将大型Json文件转换为csv

使用python将CSV文件转换为JSON文件

如何使用 json 模块将 python 对象转换为 (json) 嵌套 dict,而不创建类似文件的对象?

如何将深度嵌套的JSON文件转换为CSV?

使用 Python 将 Json 数据转换为 CSV 文件格式

使用python将JSON转换为CSV文件

使用python将CSV文件转换为JSON

使用 Python 中的数组对象将 csv 转换为 JSON

使用 Python 将 JSON 转换为 CSV 并合并对象

如何使用jq将json转换为csv文件?

如何使用C ++将CSV文件转换为JSON

如何使用python将嵌套的JSON数据转换为CSV?

如何使用 Python 将 CSV 转换为嵌套的 JSON

如何使用DataFrame将CSV文件转换为嵌套的JSON格式

使用 bash 将 JSON 文件转换为 JSON 对象

将csv转换为json(嵌套对象)

如何将 csv 文件转换为 json 格式的文件?

将Json对象转换为文件对象

如何将json对象转换为.csv文件,以及如何使用Ionic 2 + angular 2导出?

使用Python脚本将JSON文件转换为新的CSV文件

使用 Python 将大型 CSV 文件转换为多个 JSON 文件

将CSV文件转换为嵌套的JSON obj

将YAML文件转换为Python JSON对象

Python-将大型CSV文件转换为JSON

将json转换为csv文件python时出错

将 csv 转换为 json 文件格式。不确定如何使用 pandas 或 python 在 json 中实现预期输出

如何使用json将包含多个对象的json文件转换为java对象列表

如何使用java将简单的json对象转换为csv?

如何使用python将JSON数据转换为.tsv文件。