csv TypeError:必须为str或None,不能为列表

eiee3dmh  于 2023-02-27  发布在  其他
关注(0)|答案(2)|浏览(162)

问题:此文件的第10列是“DeathCity”。对于此CSV文件中的每条记录,如果DeathCity列中的城市与用户输入匹配,则输出该记录。使用upper()查找匹配项,而不会出现大小写不同的问题。

city = input("Enter a city name:")
import csv
f = open("/file.txt")
spamreader=csv.reader(f)
for DeathCity in spamreader:
        print("\t".split(DeathCity))

当我试图根据我的输入过滤数据时,我总是得到一个错误。

Traceback (most recent call last):
      File "hmwk3_1", line 7, in <module>
        print("\t".split(DeathCity))
TypeError: must be str or None, not list
gfttwv5a

gfttwv5a1#

如果你看一下csv.reader的文档,你会发现你正在迭代字符串列表的行,列表中的每个元素都是一列,所以使用下标来访问特定的列,这就是你应该与用户输入进行比较的字符串。

kognpnkq

kognpnkq2#

如果在print语句中混合使用字符串和变量,则必须使用f-string或等效的。例如)print(f"My name is {variableToPrint}")
另外,“split()“函数不带参数,但对要拆分的项进行点操作。
因此,要修复这两个错误,请尝试以下代码行,看看它是否有所改进。

print(f"\t{DeathCity.split()}")

相关问题