【问题标题】:convert csv (;) deliminated file to Json file将 csv (;) 分隔文件转换为 Json 文件
【发布时间】:2020-05-11 12:15:37
【问题描述】:

我尝试将 CSV 文件(;分隔)转换为 JSON 文件 我的 CSV 文件结构如下示例: ID;姓名;年龄;班级;SEC 1;ram;13;8;B

这样

import csv,json
csvf_path='xyz'
jsonf_path='mnb'
Data={}
with csv(csvf_path) as csvFile:
    csvRider=csv.DictReader(csvFile)
    for csvRow as csvRider:
        ID=csvRow('ID')
        data[Id]=csvRow

with open(jsonf_path,'W') as jsonFile
    jsonFile.write(json.dumps(data,indent=4))

-->data[Id]=csvRow ---->error---->KEYerror 我也尝试使用

csv.reader(csvf_path,delimiter=';')

然后我又遇到了一个错误,

TypeError:列表索引必须是整数或切片,而不是 str。 -->

ID=ID=csvRow('ID')

【问题讨论】:

    标签: json python-3.x csv data-conversion


    【解决方案1】:

    提供的代码中的缩进是错误的。看看这部分:

    csvRider=csv.DictReader(csvFile)
        for csvRow as csvRider:
        ID=csvRow('ID')
        data[Id]=csvRow
    

    for 应该缩进。


    也就是说,使用类似这样的东西将 CSV (;) 转换为 JSON
    import csv
    import json
    
    with open('data.csv') as f:
        reader = csv.DictReader(f, delimiter=';')
        rows = list(reader)
    
    with open('result.json', 'w') as f:
        json.dump(rows, f)
    

    结果:

    [
        {
            "ID": "1",
            "NAME": "ram",
            "AGE": "13",
            "CLASS": "8",
            "SEC": "1"
        }
    ]
    
    

    【讨论】:

    • 我更正了我的 python 脚本。抱歉,上面提到的脚本也没有给我 JSON 文件。请检查您的文件是否包含 CSV 中的多个数据,我认为您遇到了错误。感谢您分享宝贵的信息评论我的问题。
    • 嗨。我已经使用多行 CSV 文件测试了代码,它按预期工作。我创建了一个 repl.it,所以你可以自己测试它。只需按页面顶部的“运行”,您就会看到result.json 出现在左侧的文件管理器中。 https://repl.it/repls/AbleForthrightPolygon
    • 对不起,请检查一次 [{“ID”:“1”,“NAME”:“ram”,“AGE”:“13”,“CLASS”:“8”,“SEC”: “1”},{“ID”:“2”,“NAME”:“vram”,“年龄”:“5”,“CLASS”:“81”,“SEC”:“5”}]
    • 我认为我们需要再次考虑解决方案
    • @Sudhakar 这正是你所要求的对吧?您可以在 repl.it 中看到输入文件。否则,请编辑您的问题并添加所需的输出!
    猜你喜欢
    • 2017-12-09
    • 1970-01-01
    • 2015-11-30
    • 1970-01-01
    • 2021-01-31
    • 1970-01-01
    • 1970-01-01
    • 2019-03-18
    • 1970-01-01
    相关资源
    最近更新 更多