我有这个代码:
类型(i[0]) == 'str'
。我怎样才能将其作为列表获取?然后得到 print(i[0][0]) == 'a'
import csv
i = [['a', 'b'], 'c', 'd']
with open('a.csv', 'a', newline='', encoding='utf-8') as file:
writer = csv.writer(file, delimiter=';')
writer.writerow(i)
file.close()
with open('a.csv', 'r', newline='', encoding='utf-8') as file:
for i in csv.reader(file, delimiter=';'):
print(type(i[0]))
最佳答案
它返回 str
而不是 list
的原因是因为 csv 编写器将始终执行与 str(['a','b'] 等效的操作)
,即 "['a', 'b']",c,d
,因此您可以使用 ast.literal_eval
来获取 list 来自字符串列表,就像第一个元素一样 -
import csv
import ast
i = [['a', 'b'], 'c', 'd']
with open('a.csv', 'a', newline='', encoding='utf-8') as file:
writer = csv.writer(file, delimiter=';')
writer.writerow(i)
file.close()
with open('a.csv', 'r', newline='', encoding='utf-8') as file:
for i in csv.reader(file, delimiter=';'):
i[0] = ast.literal_eval(i[0])
print(type(i),type(i[0]), i[0][0])
关于Python CSV 将单列读取为列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74332403/