【发布时间】:2018-08-27 08:03:57
【问题描述】:
我有一个 json 文件用于存放推文数据。我要查看的数据是推文的文本。出于某种原因,有些推文太长,无法放入字典的正常文本部分。
似乎另一个字典中有一个字典,我不知道如何很好地访问它。
基本上,我最终想要的是数据框中的一列,其中包含每条推文中的所有文本。这是包含问题推文的一小部分数据样本的link。
这是我目前的代码:
import json
import pandas as pd
tweets = []
#This writes the json file so that I can work with it. This part works correctly.
with open("filelocation.txt") as source
for line in source:
if line.strip():
tweets.append(json.loads(line))
print(len(tweets)
df = pd.DataFrame.from_dict(tweets)
df.info()
查看信息时,您会看到将有一个名为 extended_tweet 的列,其中仅包含两条示例推文之一。在此列中,似乎有另一个字典,其中一个键是 full_text。
当 full_text 为空时,我想将另一列与普通文本列一起添加到仅包含此信息的数据框中。
我的第一个想法是尝试再次使用以下方法将数据框的特定列作为字典读取:
d = pd.DataFrame.from_dict(tweets['extended_tweet]['full_text])
但这不起作用。我真的不明白为什么这不起作用,因为这是我第一次读取数据的方式。
我的猜测是我无法查看具体的名称,因为我要返回列表,它必须读取全部或不读取。它给我的错误是“KeyError:'full_text'”
我也尝试使用此website 提供的建议。但这无论如何都给了我None value。
提前致谢!
我尝试按照@Dan D. 的建议去做,但是,这仍然给了我错误。但这给了我尝试这个的想法: 推文[0]['extended_tweet']['full_text'] 这很有效,并为我提供了我正在寻找的价值。但我需要贯穿整个事情。所以我尝试了这个: df['full'] = [tweet[i]['extended_tweet']['full_text'] for i in range(len(tweet))
这给了我“关键错误:'extended_tweet'” 看来我是在正确的轨道上吗?
【问题讨论】:
标签: python json pandas dictionary dataframe