csv 如何在Python中将未加引号的字符串条目的字符串列表转换为列表?

drnojrws  于 2023-09-28  发布在  Python
关注(0)|答案(1)|浏览(100)

我有一个奇怪的问题,我正在阅读一个csv文件,其中包含以下条目:

4,[the mentalist, dodgeball, meet the fockers]
5,[godfather, the heat, friends]
...

我使用csv模块读取了这个python,通常Id是:

import ast
x=ast.literal_eval(row[1])

然而,这显然是失败的,因为列表条目没有被引用。
我如何解决这个问题?:(

mkh04yzy

mkh04yzy1#

这种“格式”解析起来真的很不走运(例如,如果电影的名字包含,怎么办?那么我不知道如何解析该文件)。
最好的办法是在源代码中修复它(文件是如何生成的)。
如果您无法修复文件的生成方式,您可以尝试:

with open("data.csv", "r") as f_in:
    for line in map(str.strip, f_in):
        if not line:
            continue
        row = line.split(",", maxsplit=1)
        if "[" in row[1]:
            row[1] = row[1].strip("[]").split(", ")
        print(row)

图纸:

['col1', 'col2']
['4', ['the mentalist', 'dodgeball', 'meet the fockers']]
['5', ['godfather', 'the heat', 'friends']]

data.csv包含:

col1,col2
4,[the mentalist, dodgeball, meet the fockers]
5,[godfather, the heat, friends]

相关问题