gpt4 book ai didi

python - 使用 oauthlib python 获取 json 时出错

转载 作者:行者123 更新时间:2023-12-01 03:21:11 24 4
gpt4 key购买 nike

我试图获得一个漂亮的 json,但总是有相同的错误预期的字符串或缓冲区我的代码在下面

        import urllib2
import json
import logging
from libs.requests_oauthlib import OAuth1Session
import libs.requests2

coke = OAuth1Session('user_key',
client_secret='user_secret',
resource_owner_key='key',
resource_owner_secret='key_secret')

headers = {'content-type': 'application/json'}
url = "http://test.hdp.pengostores.mx/api/rest/orders"


response = coke.get(url,headers=headers)
self.response.out.write(response.text)

我的日志:

<type 'exceptions.Exception'> (/base/data/home/apps/s~precise-line-76299minutos/devvic.398776853921596377/delivery/handlers.py:5278)
Traceback (most recent call last):
File "/base/data/home/apps/s~precise-line-76299minutos/devvic.398776853921596377/delivery/handlers.py", line 5274, in get
response = json.loads(coke.get(url,headers=headers))
File "/base/data/home/runtimes/python27/python27_dist/lib/python2.7/json/__init__.py", line 338, in loads
return _default_decoder.decode(s)
File "/base/data/home/runtimes/python27/python27_dist/lib/python2.7/json/decoder.py", line 365, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
TypeError: expected string or buffer

最佳答案

在您使用的错误消息中

json.loads( coke.get(...) )

但是 get() 返回 response 对象 - 您必须使用 get().textget().content (而不是 get())来获取文本或字节。

或者尝试

 data = coke.get(...).json() 

直接将 JSON 转换为 Python 数据。

<小时/>

编辑:要漂亮地打印 Python 数据,请使用 pprint.pprint(data) 或使用 json.dumps() 将 Python 数据转换为 JSON 字符串>

参见文档中的示例:https://docs.python.org/2/library/json.html

Pretty printing:

>>> import json
>>> print json.dumps({'4': 5, '6': 7}, sort_keys=True,
... indent=4, separators=(',', ': '))
{
"4": 5,
"6": 7
}

关于python - 使用 oauthlib python 获取 json 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41904869/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com