我有以下代码。我正在读取csv并将其内容解析为列表:
import csv
finput = input.reader(open(path,'rb'),delimiter=',',quotechar='|')
print finput[0]
输出是:
['"1239"', '"2249.00"', '"1"', '"3"', '"2011-02-20"']
现在我想提取1239号码......第一个元素,因此print finput [0] [0]给出"1239"
。现在,如果我将其转换为整数:
el = int(finput[0][0])
我收到此错误:
ValueError: invalid literal for int() with base 10: '"1239"'
为什么有双引号?
什么是提取整数1239
的简洁方法?
答案 0 :(得分:7)
简而言之:
int(finput[0][0].strip('"'))
但为什么要将quotechar
设为|
?你确定它不应该是"
吗?设置为"
后,您应该获得没有引号的字符串。
答案 1 :(得分:1)
使用strip()
。
el = int(finput[0][0].strip('"'))
>>> a = '"1234"'
>>> a
'"1234"'
>>> a.strip('"')
'1234'
>>> int(a.strip('"'))
1234
strip()
的文档如下:
返回删除了前导和尾随字符的字符串副本。如果省略chars或None,则删除空格字符。如果给定而不是None,则字符必须是字符串;字符串中的字符将从调用此方法的字符串的两端剥离。