[英]CSV to JSON in Python takes only first and last rows
我做了一个函数,将数据从给定的 csv 文件转换为 json 对象,奇怪的是它只获取 CSV 的第一个和最后一个元素。 我的 csv 结构是 2 列:名称、天数
例子:
name,days
John,17
Fred,2
Michelle,22
当我得到 json 对象并打印它时,它给了我:
jsondata is: {
"0": {
"name": "John",
"days": "17"
},
"1": {
"name": "Michelle",
"days": "22"
}
}
这是我的代码:
data = {}
with open(file, "rt") as csvf:
csvReader = csv.DictReader(csvf)
i = 0
for rows in csvReader:
data[i] = rows
i =+ 1
jsondata = json.dumps(data, indent=4)
print("jsondata is: ", jsondata)
我不明白你为什么需要使用i
作为计数器,但这里有两个建议:
data = []
with open(file, "rt") as csvf:
csvReader = csv.DictReader(csvf)
for rows in csvReader:
data.append(rows)
jsondata = json.dumps(data, indent=4)
print("jsondata is: ", jsondata)
或者
data = {}
with open(file, "rt") as csvf:
csvReader = csv.DictReader(csvf)
for i, rows in enumerate(csvReader):
data[i] = rows
jsondata = json.dumps(data, indent=4)
print("jsondata is: ", jsondata)
在这两种情况下,您都可以通过索引访问,例如: data[0]
, data[1]
...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.