1

我正在使用 Temboo Twitter API for Python 下载推文。我想解释它们,但无法提取某些值。它以 JSON 格式返回每条推文。我想从 JSON 中取出某些项目并将它们传递给进一步使用(下面示例中的 favorite_count)。 print (json.loads(array))工作正常,但以下行print (data['favorite_count'])不能,并且返回和错误列表索引必须是整数,而不是 str。给出一个整数值只会返回和超出范围索引错误。

非常感谢从 JSON 列表中提取某个部分的解决方案。

homeTimelineResults = homeTimelineChoreo.execute_with_results(homeTimelineInputs)

if __name__ == "__main__":
    array = homeTimelineResults.get_Response()
    data  = json.loads(array)
    print (json.loads(array))
    print (data['favorite_count'])
4

1 回答 1

0

根据您收到的错误,我猜这data是一个列表,而不是字典。那么你可以做的是沿着这些思路:

import collections

homeTimelineResults = homeTimelineChoreo.execute_with_results(homeTimelineInputs)

if __name__ == "__main__":
    array = homeTimelineResults.get_Response()
    data = json.loads(array)
    if data and isinstance(data, collections.Iterable) and not isinstance(data, (str, bytes)):
        result = data.pop(0)
        print(result['favorite_count'])

基本上,我们正在检查它data确实是一个列表或元组或您可以迭代的东西(但不是字符串或字节序列)并且它不为空。这就是 if 语句 after 的含义data = json.loads(array)

如果确实如此,我们弹出第一个元素并 - 假设它是一个字典 - 访问它的'favorite_count'键。当然,这种假设非常危险,应该更加小心并首先检查:-)

于 2015-09-03T13:56:14.690 回答