使用for循环从单个词典条目更新多个列表

时间:2019-11-14 14:46:46

标签: python string list dictionary variables

我有一个键列表(存储为字符串:str1,str2,str3 ...),我想从字典中获取。从技术上讲,我正在使用jsonlines流式传输100,000个词典(Twitter推文)。

我需要将每个键的值存储在单独的值列表中(每个列表都是键的名称),我已经将它们创建为empy列表(即list4str1,list4str2,list4str3 ...)。

file = jsonlines.open(filename)
listofkeys = ['filter_level','created_at','favourite_count','retweet_count',(etc),]

tweet_texts = []
filter_level = []
created_at = [] 
favourite_count = [] 
retweet_count = []

for tweet in file 
    if tweet["text"] not in duplication_check:
        #What happens when a unique tweet is found 
        itteration += 1
        string = ("Tweet: " + str(itteration) + " :" + tweet["text"])
        duplication_check.append(tweet["text"])
        tweet_texts.append(string)
        uniquecount += 1

#_______THIS IS THE BIT I NEED HELP WITH______
        for items in listofkeys
            items.append(tweet[items])
#_______THIS IS THE BIT I NEED HELP WITH______


        if itteration%10000 == True & itteration != 1:
            print(itteration, " Items")
    else:
        #What happens when a copy is found
        copycount += 1
        itteration += 1 
        if itteration%10000 == True:
            print(itteration-1, " Items")

我收到以下错误:

AttributeError: 'str' object has no attribute 'append'

我不知道使用我有限的编码知识如何工作,因此需要帮助(也许有图书馆或适当位置的功能?)

1 个答案:

答案 0 :(得分:0)

如果我不得不猜测,因为您发布的代码中似乎缺少一些东西

 for items in listofkeys
            items.append(tweet[items])

itemslistofkeys中的字符串,您不能将任何内容附加到这样的字符串

一个好的解决方案是使用items字符串作为键来创建列表字典。

final_results = {}
for items in listofkeys
    if items not in final_results: 
        final_results[items] = [tweet[items]]
    else:
        final_results[items].append(tweet[items])