我有一个CSV文件,其中一行是字符串列表:
['1', '2', '3', '4']
我通读了这样的文件:
data = sys.argv[1]
with open(data, 'rb') as csvfile:
query = csv.reader(csvfile, delimiter=',', skipinitialspace=True)
for row in range(23):
if row == 1:
date = next(query)
elif row == 11:
cores = next(query) # Problem in this line
elif row == 13:
time_interval = next(query)
elif row == 17:
number_cores = next(query)
else:
next(query)
但是当我这样做时,我没有得到准确的界限。相反,我得到:
["['1'", "'2'", "'3'", "'4']"]
这样,我遇到的问题是我无法将每个元素转换为带有map的int。
我收到以下错误:
ValueError: invalid literal for int() with base 10: 2['1'"
我想我需要摆脱引号“”以及第一个和最后一个[]符号。我一直在努力,但没有成功。
希望我已经正确解释了自己。
提前致谢。
答案 0 :(得分:3)
您的CSV解析器(正确地)将方括号和单引号视为字段的一部分。您共享的行是有效的CSV行,但不是您想要的方式。你想要的一行是:
1,2,3,4
请注意,没有方括号,也没有引号。对于此行,您的CSV解析器可能会返回列表:
['1', '2', '3', '4']
如果您无法更改输入CSV的格式,我建议您不要使用CSV解析器。
只是要强调:问题可能在于如何创建CSV,而不是如何阅读它。