gpt4 book ai didi

python - 格式化 csv 数据并将每一行写入 json

转载 作者:行者123 更新时间:2023-11-28 17:12:24 25 4
gpt4 key购买 nike

我正在尝试将 csv 的每一行写入 json(然后将其发布并循环返回,因此覆盖 json 文件在这里不是什么大问题)。我的代码似乎做得很好,但还需要一些数据是 float /整数而不是字符串。

我有一个在其他地方适用的方法,但无法使两者相互一致。

谁能指出正确的方向,以便能够在将 csv 数据作为 json 发送之前对其进行格式化?下面是保留 header 的代码,尽管我还有一个调整版本,它只在 csv 中包含原始数据并使用字段名代替 header 。

import csv
import json

input_file = 'Test3.csv'
output_file_template = 'Test.json'

with open(input_file, 'r', encoding='utf8') as csvfile:
reader = csv.DictReader(csvfile, delimiter=',')
rows = list(reader)

for i in range(len(rows)):
out = json.dumps(rows[1*i:1*(i+1)])
with open(output_file_template.format(i), 'w') as f:
f.write(out)

数据的格式如下:

OrderType OrderStatus OrderDateTime SettlementDate MarketId OrderRoute

销售执行时间 18/11/2016 23/11/2016 1 无

销售执行时间 18/11/2016 23/11/2016 1 无

销售执行时间 18/11/2016 23/11/2016 1 无

第 [4] 行产生键错误。

最佳答案

在您的循环中,如果浮点/整数数据始终位于同一位置,您可以简单地转换值。

for i, row in enumerate(rows):
row[0] = int(row[0]) # this column stores ints
row[1] = float(row[1]) # this column stores floats
out = json.dumps([row])
with open(output_file_template.format(i), 'w') as f:
f.write(out)

我不知道第 0 列和第 1 列是否包含整数和 float ,但您可以根据需要更改它。

更新:

看起来 row 是一个 OrderedDict,所以您只需要使用键而不是索引:

row['MarketId'] = int(row['MarketId'])

关于python - 格式化 csv 数据并将每一行写入 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46770893/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com