<p>我正在使用python3,尝试在字典列表中循环,以检查每个字典中是否包含键“retweetd\u status”。目前,我的代码是:</p>
<pre><code>for item in tweets_data:
if 'retweeted_status' in item:
retweets2.append(item)
else:
pass
</code></pre>
<p>我得到的类型错误是:</p>
<p><code>---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-38-8c0e9225c623> in <module>()
1 for item in tweets_data:
----> 2 if 'retweeted_status' in item:
3 retweets2.append(item)
4 else:
5 pass
TypeError: argument of type 'int' is not iterable</code>。你知道吗</p>
<p><code>tweets_data</code>是一个包含来自文本文件的tweet的列表。为了创建这个列表,我打开并读取了文本文件。对于文本文件中的每一行,我使用json.loads文件(行)并从中保存结果json.loads文件(行)到一个变量。然后我附加了保存的结果<code>tweets_data</code>。你知道吗</p>
<p>我不完全理解这个错误。这是否意味着该项目是不可编辑的?你知道吗</p>
<p>我想象这段代码的工作方式是,它在我的字典列表上迭代(因此,每一项都是一个字典)……那么为什么字典需要是iterable呢?任何解释都会非常有用。你知道吗</p>
<hr/>
<p>所以,不管出于什么原因,我的<code>tweets_data</code>并不是一个完整的字典列表,它包含了人们在下面的评论中建议的整数</p>
<p>如果没有看到代码中所有变量的值,很难说代码出了什么问题。你知道吗</p>
<p>然而,这是一个更简短和更“Python”的方式做你想做的事。你知道吗</p>
<pre><code>new_list = [dict for dict in list_of_dicts if "retweeted_status" in dict]
</code></pre>