我有一个具有以下值的CSV文件
ID, Value
1, a
2, b
3, c
如何使用Python将csv转换为以下字符串
[('ID', 'Value'), (1, 'a'), (2, 'b'), (3, 'c')]
我正在尝试以下代码
with open('sample.csv', 'rb') as csvfile:
reader = csv.reader(csvfile, delimiter=' ', quotechar='|')
for row in reader:
data = ', '.join(row)
rows.append(data)
print rows
我只获得以下输出
["'ID','Value'", "1,'a'", "2,'b'", "3,'c'"]
要从[('ID', 'Value'), (1, 'a'), (2, 'b'), (3, 'c')]
该CSV数据生成列表,您需要将数字字符串转换为整数。这是在Python 2中执行此操作的一种方法。
import csv
data = []
with open('sample.csv', 'rb') as csvfile:
reader = csv.reader(csvfile, skipinitialspace=True)
data.append(tuple(next(reader)))
for num, val in reader:
data.append((int(num), val))
print data
输出
[('ID', 'Value'), (1, 'a'), (2, 'b'), (3, 'c')]
该csv.reader
得到的CSV数据列表的每一行。我们需要从该列表中提取项目并将第1个项目转换为int
。然后,我们可以将两个项目打包成一个元组,并将其附加到data
列表中。但是,标题行包含两个字符串,因此我们不想在标题行上执行该转换。
这段代码:
data.append(tuple(next(reader)))
获取标题行,并将其转换为元组,然后将结果附加到我们的data
列表中。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句