【发布时间】:2020-10-27 18:58:57
【问题描述】:
我正在试验一个输出 XML 的 API。
谁能告诉我解析 API 响应的代码是否有问题,或者是 API 本身的问题?
我可以使用put 命令:
import requests
import xml
from xml.etree import ElementTree
response = requests.post("https://openadrtester.herokuapp.com/api/v1/cpp/senorio/three")
string_xml = response.content
tree = xml.etree.ElementTree.fromstring(string_xml)
xml.etree.ElementTree.dump(tree)
但它会出错:
Traceback (most recent call last):
File "C:\Users\bbartling\OneDrive - Slipstream\Desktop\myAPI\tut\test.py", line 7, in <module>
tree = xml.etree.ElementTree.fromstring(string_xml)
File "C:\Users\bbartling\AppData\Local\Programs\Python\Python37\lib\xml\etree\ElementTree.py", line 1315, in XML
parser.feed(text)
File "<string>", line None
xml.etree.ElementTree.ParseError: not well-formed (invalid token): line 1, column 0
XML 也可以通过浏览器在获取请求时查看:
【问题讨论】:
-
如果你在代码中
print()string_xml包含什么? -
b'{"notification": "True", "startTime": "2:00PM", "duration": "6 Hours", "randomization": "None", "rampUp": “无”,“恢复”:“无”,“numberOfSignals”:“2”,“signalNameSimple”:[{“signalType”:“级别”,“单位”:“无”,“numberOfIntervals”:“无”, “intervalDuration”:“None”,“typicalIntervalValues”:“1,2,1”,“signalTarget”:“None”}],“signalNameElectricityPrice”:[{“signalType”:“price”,“units”:“USD每千瓦时”,“numberOfIntervals”:“3”,“intervalDuration”:“1 小时,4 小时,1 小时”,“典型的IntervalValues”:“$0.50,$0.75,$0.50”,“signalTarget”:“无”}]}\ n'
-
这是 json,不是 XML。
标签: python xml api python-requests