AttributeError: 'list' object has no attribute 'read_pickle'

AttributeError: 'list' object has no attribute 'read_pickle'

这是我使用 pandas 中的 read_pcikle 函数的代码。它可以用于单个文档。

import pandas as pd
tt = './data_v6/level3/6954/tweets_text_Kea.txt'
pd = pd.read_pickle(tt)
print(type(pd))
f = open("./data_v6/level3/6954/tweets_KeaWC.txt",'a',encoding='utf-8')
for i in pd:
         #print(i)
    #print(type(i))
    for j in i:
        res = isinstance(j, str)
        if res == True:
               print(j)
               f.write(j+'\n')

然后我尝试在我的数据中的所有文件中使用这个函数。 但是我得到一个错误:AttributeError: 'list' object has no attribute 'read_pickle'.

这里是所有文件的代码:

import pandas as pd
import os
count = 1
for root, dirs, files in os.walk("./data_v6/level3/"):
    for dir in dirs:
        print(count)
        #print(dir)
        count += 1
        tt = './data_v6/level3/'+dir+'/tweets_text_Kea.txt'
        print(tt)
        pd = pd.read_pickle(tt)
        print(type(pd))
        f = open("./data_v6/level3/"+dir+"/tweets_KeaWC.txt",'a',encoding='utf-8')
        for i in pd:
         #print(i)
    #print(type(i))
         for j in i:
            res = isinstance(j, str)
            if res == True:
               #print(j)
               f.write(j+'\n')

好吧,看看你在用 pandas:

import pandas as pd    # pd -> pandas
...
pd = pd.read_pickle(tt)    # pd -> list 

您不能将您的 read_pickle 分配给 pd;否则你不能再用 pd 调用 pandas 方法了!使用您的代码,在重新分配 pd 之前调用 pd 一次,因此下次调用 pd 时它不再起作用!

改用此代码:

import pandas as pd
import os

for root, dirs, files in os.walk("./data_v6/level3/"):
    for dir in dirs:
        tt = './data_v6/level3/'+dir+'/tweets_text_Kea.txt'
        pickle_output = pd.read_pickle(tt)
        f = open("./data_v6/level3/"+dir+"/tweets_KeaWC.txt",'a',encoding='utf-8')
        for i in pickle_output:
            for j in i:
                res = isinstance(j, str)
                if res == True:
                    f.write(j+'\n')
        f.close()