Python csv阅读-如何仅向字符串添加引号
在使用python csv库读取Python csv阅读-如何仅向字符串添加引号,python,csv,Python,Csv,在使用python csv库读取csv时,它会向所有值添加单引号 下面是读取csv的代码- with open(csvfile, 'rb') as data: reader = csv.reader(data) for row in reader: print row CSV文件内容- 1,XYZ(A),美国广播公司,7.05,13.10 使用csv在python中读取时。reader以以下格式读取行- ['1', 'XYZ (A)', 'ABC', '7.05
csv
时,它会向所有值添加单引号
下面是读取csv的代码-
with open(csvfile, 'rb') as data:
reader = csv.reader(data)
for row in reader:
print row
CSV文件内容-
1,XYZ(A),美国广播公司,7.05,13.10
使用csv在python中读取时。reader以以下格式读取行-
['1', 'XYZ (A)', 'ABC', '7.05', '13.10']
预期产量-
[1, 'XYZ (A)', 'ABC', 7.05, 13.10]
我试过使用,但没有运气
我正在考虑的另一个选项是,通过对csv.reader(文件)
有什么建议吗 您可以这样做:
with open(csvfile, 'rb') as data:
reader = csv.reader(data)
for row in reader:
print row
temp = []
for r in row:
try:
temp.append(float(r))
except ValueError:
temp.append(r)
print temp
给出以下输出:
['1', 'XYZ (A)', 'ABC', '7.05', '13.10']
[1.0, 'XYZ (A)', 'ABC', 7.05, 13.1]
使用正确的格式
编辑
要绕过被转换为浮点数的整数,请执行以下操作:
with open(csvfile, 'rb') as data:
reader = csv.reader(data)
for row in reader:
print row
temp = []
for r in row:
try:
if "." in row:
temp.append(float(r))
else:
temp.append(int(r))
except ValueError:
temp.append(r)
print temp
给出新的输出:
['1', 'XYZ (A)', 'ABC', '7.05', '13.10']
[1, 'XYZ (A)', 'ABC', '7.05', '13.10']
第一列是整数,使用这种方法将添加小数点。另外,你认为除了尝试之外的方法会对性能造成影响吗?会有轻微的性能影响,是的。要绕过与int对应的浮点值,您可以在强制转换之前检查字符串值,查看它是否包含句点,并适当地强制转换。查看数据时,您会始终知道第一列是and integer,最后两列是浮点值吗?否。逻辑必须足够通用,以支持后面的integer。