【问题标题】:Python prints the same data multiple timesPython 多次打印相同的数据
【发布时间】:2021-04-03 12:57:50
【问题描述】:

我从 twitter 获得了一个数据,现在正在处理它。 我正在尝试将推文的所有文本放入一个字符串列表中。

数据包含显示推文文本的“内容”列。我想将所有文本放入一个列表或数组中以供进一步分析。

这是我的代码:



data= []

for i in range(len(data)):
    if data['content'] is not None:
        data.append(data['content'])
data

由于某些原因,Python 会多次打印结果(数据大小)。我相信我在 for 循环中做错了什么。我只想打印一次列表。

感谢您的帮助!

【问题讨论】:

  • 我没明白你的逻辑,你能详细说明一下吗?
  • 我认为json文件包含那么多数据
  • @NanthakumarJJ 是的,我的 json 文件包含 20k 条推文的信息。我想将所有文本放到一个列表中,以便之后获得主题标签。当我运行我的代码时,它会打印我想要的结果 20k 次(所以 20k 列表列表)。我只想要一个:)
  • 我知道了,我会发布解决方案
  • 你的json结构是什么?你能提供一些样品吗?

标签: python string list dataframe for-loop


【解决方案1】:

尝试将您的列直接保存到列表中,如下所示:

result=list(tweets_data['content'])

【讨论】:

  • 为什么? tweets_data 是一个数据框。它应该工作
  • 太棒了! @Alex 不要忘记接受/支持答案。干杯
【解决方案2】:
import json
tweets_data = pd.read_json('twitter.json', lines=True)

tweet_text = []

for data in tweets_data: # changed you are just iterating over length that wrong way
    data=json.loads(data)
    if data['content'] is not None:
        tweet_text.append(data['content'])
tweet_text

甚至您也可以使用列表推导

tweet_text = [json.loads(data)['content'] for data in tweets_data if data]
print(tweet_text)

你可以遍历对象:)

【讨论】:

  • ----> 4 if data['content'] is not None: TypeError: string indices must be integers
  • 你应该把它加载到 json
  • 我希望现在它应该可以工作,如果不只是告诉我
  • 加载到json是什么意思?列表理解也不起作用
  • yaa 那些内容在字符串 rgt?但它是一本字典,所以你应该把它转换成字典/json
猜你喜欢
  • 1970-01-01
  • 2016-08-11
  • 1970-01-01
  • 1970-01-01
  • 2013-12-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多