Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.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中从http响应解析json?_Json_Python 3.x_Python Requests - Fatal编程技术网

如何在python中从http响应解析json?

如何在python中从http响应解析json?,json,python-3.x,python-requests,Json,Python 3.x,Python Requests,我的本地主机中有一个API。当我在浏览器上调用它时,我将看到以下信息: <string xmlns="http://tempuri.org/"> {"STATUS":"202","STATUS_DT":"98/12/07","CitizenMobile":"091234567","PROFILEKEY":"1233"} </string> 我的输出是: type of response= <class 'requests.models.Response'>

我的本地主机中有一个API。当我在浏览器上调用它时,我将看到以下信息:

<string xmlns="http://tempuri.org/">
{"STATUS":"202","STATUS_DT":"98/12/07","CitizenMobile":"091234567","PROFILEKEY":"1233"}
</string>
我的输出是:

type of response=  <class 'requests.models.Response'>
200

Traceback (most recent call last):
  File "C:/Users/MN/dev/New Project/form/WebService/TEST_MAZAHERI/Test_Stack.py", line 11, in 
 <module>
parsed = json.loads(data)
File "C:\Users\MN\AppData\Local\Programs\Python\Python38-32\lib\json\__init__.py", line 357, in loads
return _default_decoder.decode(s)
File "C:\Users\MN\AppData\Local\Programs\Python\Python38-32\lib\json\decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "C:\Users\MN\AppData\Local\Programs\Python\Python38-32\lib\json\decoder.py", line 355, in 
raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
响应类型=
200
回溯(最近一次呼叫最后一次):
文件“C:/Users/MN/dev/New Project/form/WebService/TEST_MAZAHERI/TEST_Stack.py”,第11行,在
parsed=json.load(数据)
文件“C:\Users\MN\AppData\Local\Programs\Python38-32\lib\json\\ uu_init\u_.py”,第357行,加载
返回\u默认\u解码器。解码
文件“C:\Users\MN\AppData\Local\Programs\Python38-32\lib\json\decoder.py”,第337行,在decode中
obj,end=self.raw\u decode(s,idx=\u w(s,0.end())
文件“C:\Users\MN\AppData\Local\Programs\Python\Python38-32\lib\json\decoder.py”,第355行,在
原始解码
从None引发JSONDecodeError(“预期值”,s,err.value)
json.decoder.JSONDecodeError:预期值:第1行第1列(字符0)
我遇到了这个错误:
json.decoder.jsondecoderror:期望值:第1行第1列(字符0)

你能帮我吗?

只需使用response.json以json格式获取数据

import json
import requests

url = ""
response = requests.get(url)

print("type of response= ",type(response))
print(response.status_code)

data = response.json # changed here

print(data)
试试这个。很好。 JSON是XML格式的,获取数据,将其作为
string
放入XML库,然后从标记中获取JSON

>>> data = r'<string xmlns="http://tempuri.org/"> {"STATUS":"202","STATUS_DT":"98/12/07","CitizenMobile":"091234567","PROFILEKEY":"1233"}</string>'

>>> from io import StringIO
>>> from lxml import etree

>>> root = etree.parse(StringIO(data))
>>> r = root.getroot()
>>> r.tag #also, you can iterate through particular tag, if xml has multiple tags
'{http://tempuri.org/}string'
>>> r.text #Get json text
' {"STATUS":"202","STATUS_DT":"98/12/07","CitizenMobile":"091234567","PROFILEKEY":"1233"}'
>>>

>>> import json
>>> json.loads(r.text)
{'STATUS': '202', 'STATUS_DT': '98/12/07', 'CitizenMobile': '091234567', 'PROFILEKEY': '1233'}
>>> #further operations add here.
>>data=r'{“STATUS”:“202”,“STATUS_DT”:“98/12/07”,“CitizenMobile”:“091234567”,“PROFILEKEY”:“1233”}
>>>从io导入StringIO
>>>从lxml导入etree
>>>root=etree.parse(StringIO(数据))
>>>r=root.getroot()
>>>r.tag#此外,如果xml有多个标记,则可以遍历特定的标记
'{http://tempuri.org/}字符串'
>>>r.text#获取json文本
“{”STATUS:“202”,“STATUS_DT:“98/12/07”,“CitizenMobile:“091234567”,“PROFILEKEY:“1233”}”
>>>
>>>导入json
>>>json.loads(r.text)
{'STATUS':'202','STATUS_DT':'98/12/07','CitizenMobile':'091234567','PROFILEKEY':'1233'}
>>>#在此处添加更多操作。
>>> data = r'<string xmlns="http://tempuri.org/"> {"STATUS":"202","STATUS_DT":"98/12/07","CitizenMobile":"091234567","PROFILEKEY":"1233"}</string>'

>>> from io import StringIO
>>> from lxml import etree

>>> root = etree.parse(StringIO(data))
>>> r = root.getroot()
>>> r.tag #also, you can iterate through particular tag, if xml has multiple tags
'{http://tempuri.org/}string'
>>> r.text #Get json text
' {"STATUS":"202","STATUS_DT":"98/12/07","CitizenMobile":"091234567","PROFILEKEY":"1233"}'
>>>

>>> import json
>>> json.loads(r.text)
{'STATUS': '202', 'STATUS_DT': '98/12/07', 'CitizenMobile': '091234567', 'PROFILEKEY': '1233'}
>>> #further operations add here.