使用 Python 在字段中保留 CSV 逗号

Keep CSV commas inside fields with Python

我有很多自动生成的 CSV 文件,它们的结构都是这样的:

id,movie,actors
1,title1,actor1,actor2
2,title2,actor1,actor2

现在,当我尝试加载 Python 中的演员列时:

import csv
with open('file.csv') as csvfile:
  reader = csv.DictReader(csvfile)
    for row in reader:
      actors = row['actors']

我为每一行设置了 actor1 和 actor2,但它们不再有逗号,所以我不能将它们拆分并视为 2 个不同的演员。不幸的是,我无法更改 CSV 中的字段分隔符,因为它是自动生成的。关于如何在字段数据中保留逗号有什么想法吗?

我会使用 maxsplit 参数按以下方式拆分:

with open('inputfile.txt') as f:
  for line in f.readlines():
    id, movie, actor_list = line.strip().split(maxsplit = 2)
    actors = actor_list.split()
    .... do something with id, movie, actors

您的 DictReader 只需要稍作不同配置,然后它就会按您的需要工作。根据上面的示例数据,csv 如下所示:

csv 文件内容

1,title1,actor1,actor2
2,title2,actor1,actor2
3,title3,actor1,actor2,actor3

以下应该有效...

with open('file.csv') as csvfile:
    reader = csv.DictReader(csvfile, delimiter=",", fieldnames=["id","movie"], restkey="actors")
    for row in reader:
        actors = row['actors']

actors 将持有如下列表:

['actor1', 'actor2']

如果要留逗号:

print ",".join(actors)

然后您还可以访问其他两个字段,如下所示:

row['id']
row['movie']