【发布时间】:2015-09-03 20:03:32
【问题描述】:
我正在尝试访问从 twitter 获得的 json 中的“国家”值。我使用 straming API 来获取一些推文并将它们保存到一个文件中。
import json
import pandas as pd
import matplotlib.pyplot as plt
tweets_data_path = 'E:/Python_prog/twitter_data.json'
tweets_data = []
tweets_file = open(tweets_data_path, "r")
for line in tweets_file:
try:
tweets_data.append(json.loads(line))
except:
pass
这就是我访问数据的方式。
将 'text' 和 'lang' 传递到 Dataframe 中没有问题。
tweets = pd.DataFrame()
tweets['text'] = [tweet['text'] for tweet in tweets_data]
tweets['lang'] = [tweet['lang'] for tweet in tweets_data]
我知道“地方”可以是空的,所以我尝试了这个:
for tweet in tweets_data:
if tweet['place'] is not None:
print(tweet['place']['country'])
tweets['country'] = tweet['place']['country']
我使用 print 来检查我是否得到了正确的值并且有效。 我得到这个输出:
United States
United States
United States
United States
United States
United States
Malaysia
United States
United States
United States
United States
但它不会传递到 tweets['country'] 数据框。 我正在使用
检查数据框打印(推文['国家'])
这就是我的输出:
0 United States
1 United States
2 United States
3 United States
4 United States
5 United States
6 United States
7 United States
8 United States
9 United States
..
302 United States
303 United States
我认为是 303,因为我的文件中有 304 条推文。 我的问题是将值正确传递到 Dataframe 但不确定如何。 稍后我将使用这些 Dataframes 使用 matplotlib 制作表格。
编辑: 根据要求提供我使用的 json 文件样本: 编辑2: 自从我得到答案后,删除了 json 的样本。谢谢。
【问题讨论】:
-
请添加您正在处理的 .json 文件的一些示例。