Python CSV 将单列读取为列表

标签 python list csv

我有这个代码:

类型(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/

相关文章:

python - 基于公共(public)元组元素组合元组列表

python - 如何用 numpy 命令替换列表理解?

python - 将列表转换为字典列表

java:扫描仪在使用useDelimiter时要求额外的值

python - 如何从多个列表创建 CSV 文件?

Java - 无法使用 File .delete() 删除文件

python - 在所有 View 函数 django 中传递表单的优化方式

python - 现在开始异步任务,稍后等待

python - 获取没有内部子标签文本的 HTML 标签文本

python - 从数组中提取正值和负值的计数