Я использую pinnacle (betting) api, который возвращает XML-файл. На данный момент я сохранить его в XML-файл, как показано ниже:XML в Python и lxml
req = urllib2.Request(url, headers=headers)
responseData = urllib2.urlopen(req).read()
ofn = 'pinnacle_feed_basketball.xml'
with open(ofn, 'w') as ofile:
ofile.write(responseData)
parse_xml()
, а затем открыть его в функции parse_xml
tree = etree.parse("pinnacle_feed_basketball.xml")
fdtime = tree.xpath('//rsp/fd/fdTime/text()')
Я предполагая сохранить его в виде файла XML, а затем чтение в файл не нужен, но я не могу заставить его работать, не делая этого.
Я попытался переходящая в responseData
функции parsexml()
parse_xml(responseData)
, а затем в функции
tree = etree.parse(responseData)
fdtime = tree.xpath('//rsp/fd/fdTime/text()')
Но это не работает.
Если вы хотите, чтобы разобрать объект в памяти (в вашем случае, строка), используйте 'etree.fromstring ()' - 'etree.parse' ожидает файл-подобный объект - [Документы] (http://lxml.de/parsing.html#parsers) –
jedwards