特定列的数据格式化 Python CSV



我有这样的csv

id,fname,lname,pdo,pdos,jabcode
1,doe,jon,10,20,10
2,dos,jons,10,20,10,11
3,de,ons,10,20,10,11,21,22
4,jam,jenn,10,20,11,22,44
5,mam,jane,10,20,16

对于 CSV 中的最后一列可能有多个值,有什么方法可以将所有最后一列值放入元组或列表中,

我编写了一个代码,其中我正在获取所有 csv 并将它们放入字典列表中,但在最后一列中值仅返回单个值。

我的代码

import csv 
pList = []
with open("data.csv", 'r') as csvfile: 
csvreader = csv.reader(csvfile) 
for i in csvreader:
d = {}
d["id"] = i[0]
d["fname"] = i[1]
d["lname"] = i[2]
d["pdo"] = i[3]
d["pdos"] = i[4]
d["jabcode"] = i[5]
pList.append(d)
print(pList)

这是返回

[{
'id': 'id',
'jabcode': 'jabcode',
'lname': 'lname',
'pdos': 'pdos',
'pdo': 'pdo',
'fname': 'fname'
}, {
'id': '1',
'jabcode': '10',
'lname': 'jon',
'pdos': '20',
'pdo': '10',
'fname': 'doe'
}, {
'id': '2',
'jabcode': '10',
'lname': 'jons',
'pdos': '20',
'pdo': '10',
'fname': 'dos'
}, {
'id': '3',
'jabcode': '10',
'lname': 'ons',
'pdos': '20',
'pdo': '10',
'fname': 'de'
}, {
'id': '4',
'jabcode': '11',
'lname': 'jenn',
'pdos': '20',
'pdo': '10',
'fname': 'jam'
},
{
'id': '5',
'jabcode': '16',
'lname': 'jane',
'pdos': '20',
'pdo': '10',
'fname': 'mam'
}] 

我想要得到的是

[{
'id': 'id',
'jabcode': 'jabcode',
'lname': 'lname',
'pdo': 'pdo',
'pdos': 'pdos',
'fname': 'fname'
}, {
'id': '1',
'jabcode': ('10'),
'lname': 'jon',
'pdos': '20',
'pdo': '10',
'fname': 'doe'
}, {
'id': '2',
'jabcode': ('10','11)',
'lname': 'jons',
'pdos': '20',
'pdo': '10',
'fname': 'dos'
}, {
'id': '3',
'jabcode': ('10','11','21','22'),
'lname': 'ons',
'pdos': '20',
'pdo': '10',
'fname': 'de'
}, {
'id': '4',
'jabcode': ('11','22','44'),
'lname': 'jenn',
'pdos': '20',
'pdo': '10',
'fname': 'jam'
},
{
'id': '5',
'jabcode': ('16'),
'lname': 'jane',
'pdos': '20',
'pdo': '10',
'fname': 'mam'
}]

有没有蟒蛇的方法可以做到这一点?

谢谢 +

你可以用tuple(i[5:])来做到这一点

import csv 
pList = []
with open("data.csv", 'r') as csvfile: 
csvreader = csv.reader(csvfile) 
for i in csvreader:
d = {}
d["id"] = i[0]
d["fname"] = i[1]
d["lname"] = i[2]
d["pdo"] = i[3]
d["pdos"] = i[4]
d["jabcode"] = tuple(i[5:])
pList.append(d)
print(pList)

最新更新