python - 使用 Twitter API 访问推文的 JSON 属性
问题描述
这是一个非常基本的问题,但无论如何它让我有点难过。我正在尝试访问推文的特定属性(在此处找到的文档),例如“文本”。我尝试通过 data["text"] 访问它,但是这给了我以下错误TypeError: string indices must be integers
。
json.loads(data)
因此,我尝试使用认为这将允许我访问推文的每个属性来解析数据。但是,这只会返回推文的文本部分,这意味着当我这样做时print(newData)
,它会打印出文本。虽然这很有用,但我需要能够访问推文的其他属性,例如"created_at"
.
所以我的问题是,我如何解析推文或访问它,这样我就可以提取出我需要的各个属性。重申一下,我确信这很简单,但是我是处理 JSON 对象的新手,我发现的其他解决方案只是告诉我使用 load(),这不是我想要的。
class TwitterStreamer():
"""
Class for streaming and processing live tweets for a given list of hashtags
"""
def stream_tweets(selfself, hashtag_list):
listener = StdOutListener()
auth = OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_TOKEN, ACCESS_TOKEN_SECRET)
stream = Stream(auth, listener)
stream.filter(track=hashtag_list)
class StdOutListener(StreamListener):
def on_data(self, data):
print(data)
newData = json.loads(data)
print(newData["text"])
return True
def on_error(self, status):
print(status)
def main():
hashtag_list = ['Chelsea']
fetched_tweets_filename = "tweets.json"
twitter_streamer = TwitterStreamer()
twitter_streamer.stream_tweets(hashtag_list)
main()
解决方案
尝试使用 json.load() 将 JSON 作为 Python 对象加载。方法 json.loads() 将 JSON 作为字符串加载,这就是为什么它会给你一个 TypeError 异常,因为字符串对象索引只能是整数。
推荐阅读
- python - QRegularExpression 如何传递给 Qt::MatchRegularExpression
- android-databinding - 为什么我的数据绑定注解(@BindingAdapter("imageURL")) 不起作用?
- c# - 使用 MailKit 和 Stringbuilder 发送 ics 文件
- python - 通过键合并两个 Python 字典的值
- angular - Validators.minlength 不能以角度反应形式工作
- cucumber - 如何将空手道测试结果输出到自定义文件夹而不是目标?
- firebase - 如何创建水平 ListView.builder
- node.js - 如何使用 fastify-cors 让一个 api 跨域?
- python - 如何加速 KNN 算法
- mongodb - mongodump 默认在哪里保存数据?