python - 从字典中读取字典

标签 python json pandas dictionary dataframe

我有一个用于存储推文数据的 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()

查看信息时,您可以看到有一列名为extend_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'] 这有效并给了我我正在寻找的值(value)。但我需要把整个事情讲一遍。所以我尝试了这个: df['full'] = [tweet[i]['extended_tweet']['full_text'] for i in range(len(tweet))

这给了我“关键错误:'extended_tweet'” 我似乎走在正确的道路上吗?

最佳答案

我建议像这样展平字典:

tweet = json.loads(line)
tweet['full_text'] = tweet['extended_tweet']['full_text']
tweets.append(tweet)

关于python - 从字典中读取字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49351496/

相关文章:

python - 覆盖python中的所有运算符

json - 在 swift 4 中解析 JSON 时出错

json - 如何在 Go 中将字符串转换为 JSON?

python - 为多索引数据框的每个索引排序列

python-3.x - 仅将数据框中的新行添加到 csv 文件

python - 对 python pandas 中的特定时间窗口求和

python - 为什么类变量可以通过类实例访问?

python - Keras 预测准确度与拟合结果不匹配

php - select2 单击时重定向

python - 使用 pandas 将多个 xlsm 文件自动转换为多个 csv 文件