我尝试使用以下代码阅读以json格式保存的Twitter数据:
import json
with open(file, 'r') as f:
line = f.readline()
tweet = json.loads(line)
df1 = pd.DataFrame(tweet)
此代码只读取一条推文并且有效,但是当我尝试通过以下方式阅读所有文件时:
with open(file, 'r') as f:
for line in f:
tweet = json.loads(line)
我收到了一个错误:
JSONDecodeError: Expecting value: line 2 column 1 (char 1)
我发现了一些与此问题相关的主题,但仍然没有解决,因为我可以阅读特定的推文。我应该更改什么才能正确阅读此文件?
我的主要任务是查找这些推文的创建日期,我发现它使用了以下过滤器(我刚刚使用了一条在开头工作的推文):
df2 = df[["user"]]
df3 = df2.loc[['created_at']]
df3
也许有比DataFrame更好的方法来获取这些数据?
我的json文件可用here。
感谢您的帮助!
答案 0 :(得分:0)
您可以这样做:
import pandas as pd
#results is the JSON tweet data.
#Define the columns you want to extract
resultFrame = pd.DataFrame(columns=["username","created_at","tweet"])
print len(results)
for i in range(len(results)):
resultFrame.loc[i,"username"] = results[i].user.screen_name
resultFrame.loc[i, "created_at"] = results[i].created_at
resultFrame.loc[i, "tweet"] = results[i].text
print resultFrame.head()
答案 1 :(得分:0)
为我读取(全部)JSON文件的更简洁方式看起来像
import pandas as pd
df = pd.read_json("python.json", orient = 'records', lines = True)
然后,您可以将转换应用于df
,以便从您感兴趣的列中获取数据。