我有这样的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)