pythonjson.loads()有效,但是请求.json在产生32MB json的odata端点上不起作用

2024-10-02 16:30:55 发布

您现在位置:Python中文网/ 问答频道 /正文

一直在愉快地使用请求.json与…互换json.loads().... 但今天我使用的是一个odata端点,它返回~32MB的json。。。json.loads()工作很好,但当我试着请求.json它引发了一个错误。所以两者之间一定有区别?关于这些可能是什么的任何见解。。。使用Python3.6,请求2.18.4

# get json from odata endpoint and check for top-level "value" element...
try:
    http_response = requests.get( url )
except Exception as errmsg:
    sys.exit( "Error on http request ... Msg: " + str(errmsg) )

try:
    # jsondata  = json.loads( http_response.text )   # works fine
    jsondata = http_response.json                  # doesn't work
except Exception as errmsg:
    sys.exit( "Error on json conversion: " + str(errmsg) )

 try:
    rowset = jsondata["value"]
except Exception as errmsg:
    sys.exit( "ERROR .... can't find 'value'. Msg: " + str(errmsg) )

我需要调用的odata端点返回的json很长(32113432个字符),开头如下:

^{pr2}$

使用时出现的错误请求.json是:

ERROR .... can't find 'value'. Msg: 'method' object is not subscriptable

Tags: jsonhttpvalueresponseassysexitexception