繁体   English   中英

Python中的CSV到JSON只需要第一行和最后一行

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM