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

用户35131

这里的大多数示例都显示了硬编码的列而不是迭代。我有 73 列我想在 JSON 中进行迭代和正确表达。

import csv
import json


CSV_yearly = r'C:\path\yearly.csv'
JSON_yearly = r'C:\path\json_yearly.json'

with open(CSV_yearly, 'r') as csv_file:
    reader = csv.DictReader(csv_file)
    with open(JSON_yearly, 'w') as json_file:
        for row in reader:
            json_file.write(json.dumps(row) + ',' + '\n')

print "done"

尽管这会创建一个 json 文件,但它的作用不正确。我看到了一些示例,其中读者内部的参数请求列表,但我不想从 csv 中输入 73 列。我的猜测是代码行云开始之间withreader

魅惑蛇

您的代码将文件中的每一行创建为一个单独的 JSON 对象(有时称为 JsonL 或 json-lines 格式)。收集列表中的行,然后序列化为 JSON:

with open(CSV_yearly, 'r') as csv_file:
    reader = csv.DictReader(csv_file)
    with open(JSON_yearly, 'w') as json_file:
        rows = list(reader)
        json.dump(rows, json_file)

请注意,JSON 的某些使用者希望将对象而不是列表作为外部容器,在这种情况下,您的数据必须是

rows = {'data': list(reader)}

更新: - 来自评论的问题

  • 你知道为什么结果没有相应地对我的列进行排序吗?

csv.DictReader使用标准的 Python 字典来创建行,因此在 3.7 之前的 Python 版本中,键的顺序是任意的。如果必须保留键顺序,请尝试使用OrderedDict

from collections import OrderedDict

out = []
with open('mycsv.csv', 'rb') as f:
    reader = csv.reader(f)
    headings = next(reader) # Assumes first row is headings, otherwise supply your own list
    for row in reader:
        od = OrderedDict(zip(headings, row))
        out.append(od)

# dump out to file using json module

请注意,虽然这可能会输出具有所需键顺序的 json,但 json 的使用者不需要遵守它。

  • 你是否也知道为什么我在 json 中的值被转换成字符串而不是保留为数字或没有括号。

来自 csv 的所有值都作为字符串读取。如果您想要不同的类型,那么您需要在读取 csv 文件后执行必要的转换。

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将JSON列表转换为CSV文件中的两个不同列?

如何将.txt / .csv文件转换为ORC格式

如何将CSV文件转换为多行JSON?

如何将CSV文件转换为OpenTSDB格式

如何将csv文件转换为TFrecord tensorFlow格式?

如何将MongoDB存档文件转换为JSON格式?

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

如何将大型JSON文件转换为Pandas Dataframe或常规CSV文件?

Javascript:如何将数组中的JSON数组转换为CSV文件?

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

如何将.sav文件转换为csv文件

如何在Anypoint Studio中导入CSV文件并将其转换为JSON格式?

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

如何将大型.sav文件转换为csv文件

将Excel文件转换为CSV并以JSON格式读取其内容

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

如何将txt文件转换为CSV文件?

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

如何将hadoop序列文件转换为json格式?

如何将JSON文件转换为其他格式

将.jhist文件转换为JSON格式

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

如何将 EEBCDIC 文件格式转换为 csv

如何在不使用 csv 文件的情况下将 JSON 数据即时转换为 CSV 格式

如何从 CSV 文件转换为键控格式的 JSON?

在 Mule 4 中将 JSON 转换为 CSV 后如何将 --EOF 附加到 CSV 文件

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

如何将 .log 文件转换为 .csv 文件

将csv转换为json文件格式但没有得到预期的输出