正在解析TypeError:“file”对象没有属性“\u getitem”

2024-05-06 14:04:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图创建一个只包含文件1中的名称而不包含在文件1中的名称的文件。运行以下代码时出错:

import pandas
import csv
f = pandas.read_csv('hillelclass2019.csv')
g = pandas.read_csv('shabsignup.csv')
for i in range(193): #length of data1
    x = str(f['First Name'][i]) + " " + str(f['Last Name'][i]) #first name + last name
    a = 0 #initial
    for j in range(25): #length of data2
        if g['Name'][j] == x: #if name == name on other sheet, then a == 1
            a == 1
    if a == 0: #if names are not equal 
        with open('noshab.csv', 'a') as f: #write name to file
            wtr = csv.writer(f, delimiter= ',')
            wtr.writerow( [x,i])

错误:

^{pr2}$

当我将I设置在范围(1)中并且只运行1次迭代时,代码可以工作,但是对于多行代码不起作用。在


Tags: 文件ofcsv代码nameinimport名称
2条回答

您已经将f绑定到循环中的一个file对象,因此在一次迭代之后,它不再指向您的df,因此f['First Name'][i]不是{},因此它显然失败了:

with open('noshab.csv', 'a') as f: # <- f is now a file object

将名称从f = pandas.read_csv('hillelclass2019.csv')更改为df = pandas.read_csv('hillelclass2019.csv'),并使用df引用代码中的数据帧:

^{pr2}$

另一个注意事项是,if g['Name'][j] == x:里面的a == 1什么都没有做,我想你是指{}。在

发生错误是因为您试图像dict一样访问文件实例

f['First Name']或任何其他密钥访问在文件实例上不起作用。在

错误是指一个__getitem__函数,该函数在任何时候都被暗中调用,试图使用[]索引到一个对象中,通常是dict或类似的键控结构。在

相关问题 更多 >