Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python(Twitter API)中传递JSON项_Python_Json_Python 3.x_Twitter_Temboo - Fatal编程技术网

在Python(Twitter API)中传递JSON项

在Python(Twitter API)中传递JSON项,python,json,python-3.x,twitter,temboo,Python,Json,Python 3.x,Twitter,Temboo,我正在使用TembooTwitterAPI for Python下载推文。我想解释它们,但提取某些值时遇到困难。它返回JSON格式的每条推文。我想从JSON中取出某些项,并将它们传递给其他人以供进一步使用(下面的示例中是favorite_计数)。print(json.loads(array))可以正常工作,但下面的print(data['favorite_count'])行不能正常工作,返回和错误列表索引必须是整数,而不是str。给出整数值只会返回和超出范围的索引错误 如果能从JSON列表中提取

我正在使用TembooTwitterAPI for Python下载推文。我想解释它们,但提取某些值时遇到困难。它返回JSON格式的每条推文。我想从JSON中取出某些项,并将它们传递给其他人以供进一步使用(下面的示例中是favorite_计数)。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'])

从你所得到的错误来看,我猜
数据
是一个列表,而不是字典。然后你可以做的是以下几点:

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=json.loads(array)
之后if语句的含义


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

从您得到的错误中,我猜
数据
是一个列表,而不是一个字典。然后你可以做的是以下几点:

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=json.loads(array)
之后if语句的含义


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

dir(data)
list(data.keys())
可能很有用。因为完整响应是一个数组,所以您还需要指定数组索引。尝试以下操作:打印(数据[0]['favorite_count'])
dir(数据)
list(data.keys())
可能很有用。由于完整响应是一个数组,您还需要指定数组索引。尝试以下操作:打印(数据[0]['favorite_count'])