【发布时间】:2018-08-07 15:23:57
【问题描述】:
我想将 CSV 文件读入字典,这是我的代码:
import csv
import sys
with open('/Users/m/based_final.csv',mode='r') as my_input_file:
csv_reader=csv.DictReader(my_input_file)
line_count=0
for row in csv_reader:
if line_count == 0:
print(str.format('Column names are {",".join(row)}'))
line_count += 1
print(str.format('\t{row["Indication"]} {row["Name"]} {row["Drug id"]} {row["Synonyms"]} '))
line_count += 1
print('Processed {line_count} lines.')
但我收到此错误: 键错误:'","'。
数据如下所示:
Indication Name Drug id Synonyms
for_treatment bivalirudin ['db00006', 'btd00076'] ['bivalirudina', 'bivalirudinum', 'hirulog']
for_alteplase a name ['db00009', 'btd00050', 'biod00050'] ['alteplase (genetical recombination)', 'alteplase, recombinant']
知道如何解决这个问题吗? 谢谢
【问题讨论】:
-
请不包含数据截图。在这种特殊情况下,我们不知道实际数据的样子,而这正是解析器所抱怨的。请包括文本数据。还请包含完整错误消息。
-
已更正! @DYZ 谢谢!
-
那么,您的列实际上是制表符分隔的,而不是逗号分隔的吗?另外,请附上完整的错误信息。
-
@DYZ 是的。它是制表符分隔的,但仍使用“\t”,我收到此错误“KeyError: '"\t"'。
-
print('Processed {line_count} lines.')将打印“已处理的 {line_count} 行。”。你可能想要print(f'Processed {line_count} lines.')。 (注意字符串前面的f。)
标签: python-3.x dictionary