【问题标题】:Trying to create a csv using python, and getting "list indices" error尝试使用 python 创建一个 csv,并得到“列表索引”错误
【发布时间】:2016-09-28 21:32:59
【问题描述】:

在我的最后一个问题中,我询问了如何让 python 为 csv 文件中的短语分配一组值。有人告诉我创建一个元组列表,这很好用。

目前我的列表名为 clean_titles 如下所示:

[('a', 1),
 ('a', 1),
 ('a', 1),
 ('a', 1),
 ('a', 1),
 ('a', 1),
 ('a', 1),
 ('a', 1),
 ('b', 2),
 ('b', 2),
 ('b', 2),
 ('b', 2),
 ('b', 2),
 ('b', 2),
 ('c', 3),
 ('c', 3),
 ('c', 3),
 ('c', 3),
 ('c', 3)]

现在我想获取列表,并将其导出为 CSV 文件。我想要一列中的短语名称和另一列中分配的数字。

with open("fiancee_wordfreq.csv" , "wb") as f:
     writer = csv.writer(f)  
  for val in clean_titles:
     writer.writerow([val])

但我不断收到一条错误消息“列表索引必须是整数而不是 unicode”

我做错了什么或我错过了什么。谢谢你的帮助。

【问题讨论】:

  • 我可以毫无错误地运行您的代码。虽然我怀疑你想要 val 周围的括号。
  • 我会假设fiancee_wordfreq.csv 没有被用于邪恶目的...... :)
  • 如果您使用的是 Python3,则模式参数中不需要“b”。

标签: python csv


【解决方案1】:

(我的答案是 Python3)

您正在以“字节”模式打开文件。当我删除“b”参数时它对我有用:

with open("testabc.csv" , "w") as f:
  writer = csv.writer(f)  
  for val in clean_titles:
     writer.writerow(val)

另外,您可以使用内置的writerows 函数来减少冗长:

with open("testabc.csv" , "w") as f:
  writer = csv.writer(f)  
  writer.writerows(clean_titles)

【讨论】:

    猜你喜欢
    • 2020-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-07
    • 1970-01-01
    • 2017-11-16
    相关资源
    最近更新 更多