Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 列表中的TypeError csv.reader_Python_List_Loops_Csv - Fatal编程技术网

Python 列表中的TypeError csv.reader

Python 列表中的TypeError csv.reader,python,list,loops,csv,Python,List,Loops,Csv,我创建了一个名为dict1的文件名列表。请参阅错误消息的示例,了解列表的外观 然后我想通读dict1中的每个文件名,直到所有文件都被处理完毕 # creates dict each containing 5 file names to be processed. list = open("/opt/stateadm/AAM_Scripts/Realtime/file.txt").read() list_words = list.split('\n') dict1 = ('\n'.join(lis

我创建了一个名为dict1的文件名列表。请参阅错误消息的示例,了解列表的外观

然后我想通读dict1中的每个文件名,直到所有文件都被处理完毕

# creates dict each containing 5 file names to be processed.
list = open("/opt/stateadm/AAM_Scripts/Realtime/file.txt").read()
list_words = list.split('\n')
dict1 = ('\n'.join(list_words[0:5]))
print dict1
# for each row in dict (file) open read and publish to Redis
for row in dict1:
    dir = '/opt/stateadm/AAM_Scripts/Realtime/outgoing/traits/'
    reader = csv.reader(open(dir + dict1(row)))
    header = reader.next()
    client = redis.StrictRedis(host='XXXXXXXXXXXXXXXXXXXXXXX', port=6379, db=0)
    client1 = redis.StrictRedis(host='XXXXXXXXXXXXXXXXXXXXXXX', port=6379, db=0)
    client2 = redis.StrictRedis(host='XXXXXXXXXXXXXXXXXXXXXXX', port=6379, db=0)
    list1 =(client, client1, client2)
    for row in reader:
        key = 'AAM_CDF_Traits'
        doc = dict(zip(header, row))
        random.choice(list1).publish(key, doc)
错误消息:

print dict1
split_bj.csv
split_bi.csv
split_bh.csv
split_bg.csv
split_bf.csv

Traceback (most recent call last):
  File "./AAM_Redis6.sh", line 32, in <module>
    reader = csv.reader(open(dir + dict1(row)))
TypeError: 'str' object is not callable
我不知道为什么我会犯这样的错误。我只想将目录附加到Dict1中的每个行文件名,并通读每个行文件名。

Dict1是单个字符串,而不是列表或字典。您正试图将其用作dict1row的函数

您可能只想在原始列表上循环:

for row in list_words[0:5]:
    reader = csv.reader(open(dir + row))

非常感谢你!我明白为什么我会犯那个错误了。谢谢你的解释。