Я новичок в Python и XMLRPC, и я застрял декодирования двоичных данных, поступающих от государственной службы:расшифровывает двоичный из XmlRpc питона
ответ запрос на обслуживание с помощью этого кода является:
from xmlrpc.client import Server
import xmlrpc.client
from pprint import pprint
DEV_KEY = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxx'
logFile = open('stat.txt', 'w')
s1 = Server('http://muovi.roma.it/ws/xml/autenticazione/1')
s2 = Server('http://muovi.roma.it/ws/xml/paline/7')
token = s1.autenticazione.Accedi(DEV_KEY, '')
res = s2.paline.GetStatPassaggi(token)
pprint(res, logFile)
ответ:
{'id_richiesta': '257a369dbf46e41ba275f8c821c7e1e0',
'risposta': {'periodi_aggregazione': <xmlrpc.client.Binary object at 0x0000027B7D6E2588>,
'tempi_attesa_percorsi': <xmlrpc.client.Binary object at 0x0000027B7D9276D8>}}
мне нужно декодировать эти два двоичных объектов, и я застрял с этим кодом:
from xmlrpc.client import Server
import xmlrpc.client
from pprint import pprint
DEV_KEY = 'xxxxxxxxxxxxxxxxxxxxxxxx'
logFile = open('stat.txt', 'w')
s1 = Server('http://muovi.roma.it/ws/xml/autenticazione/1')
s2 = Server('http://muovi.roma.it/ws/xml/paline/7')
token = s1.autenticazione.Accedi(DEV_KEY, '')
res = s2.paline.GetStatPassaggi(token)
dat = xmlrpc.client.Binary(res)
out = xmlrpc.client.Binary.decode(dat)
pprint(out, logFile)
, который заканчивается в:
Traceback (most recent call last): File "stat.py", line 18, in dat = xmlrpc.client.Binary(res) File "C:\Users\Leonardo\AppData\Local\Programs\Python\Python35\lib\xmlrpc\client.py", line 389, in init data.class.name) TypeError: expected bytes or bytearray, not dict
Единственный документ я нашел для xmlrpc.client это один на docs.python.org, но я не могу понять, как я мог бы расшифровать эти двоичные файлы
Кажется, что вы делаете правильный звонок, может быть, проблема на сайте? 'TypeError: ожидаемые байты или bytearray, а не dict'? Я бы подумал, что вы на самом деле принимаете «хита» вместо «bytearray» – NeoVe
да, я думаю, что это дикт. Я постараюсь связаться с разработчиком веб-сайта – Forzaferrarileo