我目前正在使用Twitter API使用tweepy搜索推文,并且试图解析推文的特定部分,例如created_at,收藏夹,转推,用户ID,ID和推文的文本,但是何时我运行我的代码,什么都没发生?
到目前为止,我已经能够从twitter获得数据并将其以json格式放置,我有一个包含该数据的文本文件,因此当我调用它时,应该迭代该文件并提取特定项每条推文。
这是我要尝试的代码,明智地解析。
filename = "clipboard2.txt"
jsonfile = open(filename, "r")
for line in jsonfile:
try:
rows = json.loads(line.strip())
if 'text' in rows: # only messages contains 'text' field is a tweet
print("rows"['id']) # This is the tweet's id
print(["rows"]['created_at']) # when the tweet posted
print(rows["rows"]['text']) # content of the tweet
print(rows["rows"]['retweet_count'])
print(rows["rows"]['favorite_count'])
print["rows"]["user-id"] # id of the user who posted the tweet
print(rows["rows"]['user']['name']) # name of the user, e.g. "Wei Xu"
print(rows["rows"]['user']['screen_name'])
except:
continue
我的文本文件/代码如下:Text file
似乎没有错误,因为它运行时没有错误,但是我不太确定如何处理数据。我想的方式是引号中有“行”,因为这是json文件的第一行,其后的所有内容都存储在数组中,对吗?因此,我想要的是用我拥有的项遍历数组的每个部分,并打印出包含这些项的tweet的每个元素。
答案 0 :(得分:0)
以下代码对我有用。
from tweet_parser.tweet import Tweet
from tweet_parser.tweet_parser_errors import NotATweetError
filename = "tweet_data.txt"
jsonfile = open(filename, "r")
for line in jsonfile:
try:
if not line.strip(): continue # skips the empty lines, if any
tweet_dict = json.loads(line)
tweet = Tweet(tweet_dict)
except:
pass
if tweet.text != None:
print(tweet.id) # This is the tweet's id
print(tweet.created_at_datetime) # when the tweet posted
print(tweet.text) # content of the tweet
print(tweet.retweet_count)
print(tweet.favorite_count)
print(tweet.user_id)
print(tweet.screen_name)