我已经开始使用zeep发出WSSL请求,并且,与我的预期相反,响应不是python dict,而是XML:
"<?xml version='1.0' encoding='ISO-8859-1'?>\n<SERIES>\n<SERIE ID='1'>\n\t\t<ITEM>\n\t\t\t<DATA>2/1/2020</DATA>\n\t\t\t<VALOR>4.0213</VALOR>\n\t\t\t<BLOQUEADO>false</BLOQUEADO>\n\t\t</ITEM>\n\t\t<ITEM>\n\t\t\t<DATA>3/1/2020</DATA>\n\t\t\t<VALOR>4.0522</VALOR>\n\t\t\t<BLOQUEADO>false</BLOQUEADO>\n\t\t</ITEM>\n\t\t<ITEM>\n\t\t\t<DATA>6/1/2020</DATA>\n\t\t\t<VALOR>4.0554</VALOR>\n\t\t\t<BLOQUEADO>false</BLOQUEADO>\n\t\t</ITEM>\n\t\t<ITEM>\n\t\t\t<DATA>7/1/2020</DATA>\n\t\t\t<VALOR>4.0841</VALOR>\n\t\t\t<BLOQUEADO>false</BLOQUEADO>\n\t\t</ITEM>\n\t\t<ITEM>\n\t\t\t<DATA>8/1/2020</DATA>\n\t\t\t<VALOR>4.0672</VALOR>\n\t\t\t<BLOQUEADO>false</BLOQUEADO>\n\t\t</ITEM>\n\t\t<ITEM>\n\t\t\t<DATA>9/1/2020</DATA>\n\t\t\t<VALOR>4.0744</VALOR>\n\t\t\t<BLOQUEADO>false</BLOQUEADO>\n\t\t</ITEM>\n\t\t<ITEM>\n\t\t\t<DATA>10/1/2020</DATA>\n\t\t\t<VALOR>4.0745</VALOR>\n\t\t\t<BLOQUEADO>false</BLOQUEADO>\n\t\t</ITEM>\n\t\t<ITEM>\n\t\t\t<DATA>13/1/2020</DATA>\n\t\t\t<VALOR>4.1309</VALOR>\n\t\t\t<BLOQUEADO>false</BLOQUEADO>\n\t\t</ITEM>\n\t\t<ITEM>\n\t\t\t<DATA>14/1/2020</DATA>\n\t\t\t<VALOR>4.1443</VALOR>\n\t\t\t<BLOQUEADO>false</BLOQUEADO>\n\t\t</ITEM>\n\t\t<ITEM>\n\t\t\t<DATA>15/1/2020</DATA>\n\t\t\t<VALOR>4.1622</VALOR>\n\t\t\t<BLOQUEADO>false</BLOQUEADO>\n\t\t</ITEM>\n\t\t<ITEM>\n\t\t\t<DATA>16/1/2020</DATA>\n\t\t\t<VALOR>4.1726</VALOR>\n\t\t\t<BLOQUEADO>false</BLOQUEADO>\n\t\t</ITEM>\n\t\t<ITEM>\n\t\t\t<DATA>17/1/2020</DATA>\n\t\t\t<VALOR>4.1837</VALOR>\n\t\t\t<BLOQUEADO>false</BLOQUEADO>\n\t\t</ITEM>\n\t\t<ITEM>\n\t\t\t<DATA>20/1/2020</DATA>\n\t\t\t<VALOR>4.1829</VALOR>\n\t\t\t<BLOQUEADO>false</BLOQUEADO>\n\t\t</ITEM>\n\t\t<ITEM>\n\t\t\t<DATA>21/1/2020</DATA>\n\t\t\t<VALOR>4.2014</VALOR>\n\t\t\t<BLOQUEADO>false</BLOQUEADO>\n\t\t</ITEM>\n\t\t<ITEM>\n\t\t\t<DATA>22/1/2020</DATA>\n\t\t\t<VALOR>4.1889</VALOR>\n\t\t\t<BLOQUEADO>false</BLOQUEADO>\n\t\t</ITEM>\n\t\t<ITEM>\n\t\t\t<DATA>23/1/2020</DATA>\n\t\t\t<VALOR>4.1662</VALOR>\n\t\t\t<BLOQUEADO>false</BLOQUEADO>\n\t\t</ITEM>\n\t\t<ITEM>\n\t\t\t<DATA>24/1/2020</DATA>\n\t\t\t<VALOR>4.1769</VALOR>\n\t\t\t<BLOQUEADO>false</BLOQUEADO>\n\t\t</ITEM>\n\t\t<ITEM>\n\t\t\t<DATA>27/1/2020</DATA>\n\t\t\t<VALOR>4.2196</VALOR>\n\t\t\t<BLOQUEADO>false</BLOQUEADO>\n\t\t</ITEM>\n\t\t<ITEM>\n\t\t\t<DATA>28/1/2020</DATA>\n\t\t\t<VALOR>4.2064</VALOR>\n\t\t\t<BLOQUEADO>false</BLOQUEADO>\n\t\t</ITEM>\n\t\t<ITEM>\n\t\t\t<DATA>29/1/2020</DATA>\n\t\t\t<VALOR>4.2013</VALOR>\n\t\t\t<BLOQUEADO>false</BLOQUEADO>\n\t\t</ITEM>\n\t\t<ITEM>\n\t\t\t<DATA>30/1/2020</DATA>\n\t\t\t<VALOR>4.2523</VALOR>\n\t\t\t<BLOQUEADO>false</BLOQUEADO>\n\t\t</ITEM>\n\t\t<ITEM>\n\t\t\t<DATA>31/1/2020</DATA>\n\t\t\t<VALOR>4.2695</VALOR>\n\t\t\t<BLOQUEADO>false</BLOQUEADO>\n\t\t</ITEM>\n\t</SERIE>\n</SERIES>"
到目前为止,我已经在zeep中尝试了帮助器类:
zeep.helpers.serialize_object(response['_value_1'])
以及提取XML树:
ElementTree(et.fromstring(teste))
下面是一个可复制的示例:
import pandas as pd
from requests import Session
from zeep import Client
from zeep.transports import Transport
import os
session = Session()
url = 'https://www3.bcb.gov.br/sgspub/JSP/sgsgeral/FachadaWSSGS.wsdl'
client = Client(url)
# arrayOffLong Constructor
arrayOffLong = client.get_type('ns0:ArrayOfflong')
response = client.service.getValoresSeriesXML(arrayOffLong([1]), '01/01/2020', '01/02/2020')
下面介绍如何将XML字符串转换为python dic
结果:
相关问题 更多 >
编程相关推荐