如何解决使用Python提取推文-如何保存数量有限的变量
我是python的新手,它试图为研究项目提取推文。
我使用图书馆搜索推文。现在,我只想打印来自Twitter的质量中的几个变量。 我只是不明白为什么这段代码会写所有变量-我只想要一个视图变量。 created_at,文本,extended_tweet,用户screen_name,用户名.. 在一般情况下,我真的很想了解如何打印我需要的变量。我真的很绝望,因为我不明白。 以下是可以使用的变量:HERE
#above yaml...keys...
import json
from searchtweets import load_credentials,gen_rule_payload,ResultStream
premium_search_args = load_credentials("twitter_keys.yaml",yaml_key="search_tweets_api",env_overwrite=False)
rule = gen_rule_payload(SEARCH_QUERY,results_per_call=RESULTS_PER_CALL,from_date=FROM_DATE,to_date=TO_DATE
)
rs = ResultStream(rule_payload=rule,max_results=MAX_RESULTS,**premium_search_args)
with open(FILENAME,'a',encoding='utf-8') as f:
n = 0
for tweet in rs.stream():
n += 1
if n % PRINT_AFTER_X == 0:
print('{0}: {1}'.format(str(n),tweet['created_at']))
json.dump(tweet,f)
f.write('\n')
#Use csv writer
csvFile = open('result.csv','a')
csvWriter = csv.writer(csvFile)
for tweet in rs.stream(): # how can I write it into an excel file? the relevant variables. # all variables in rs saved?
# Write a row to the CSV file. I use encode UTF-8
csvWriter.writerow([
tweet.created_at,tweet.text,tweet.extended_tweet
#tweet.in_reply_to_status_id,])
print(tweet.created_at,tweet.extended_tweet)
#does not work
非常感谢!!!
Christoph
解决方法
您是否已使用json将“ tweet”变量的内容应用于字典?
,如果从服务器收到json字符串,则需要使用json库将其转换为字典,以便能够从中获取字典键的值
例如:
import json
# write the server response to the variable
tweet = '''{
"created_at": "Wed Oct 10 20:19:24 +0000 2018","id": 1050118621198921728,"id_str": "1050118621198921728","text": "To make room for more expression,we will now count all emojis as equal—including those with gender and skin t… https://.../...","user": {},"entities": {}
}'''
dict_tweet = json.loads(tweet) # convert the server response to dict
created_at = dict_tweet['created_at']
print(created_at) # now we can ask him for the value of any key
它显示:“ 2018年10月10日星期三20:19:24 +0000”
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。