В основном я использую urllib.request, чтобы вызвать вызов API для публикации, получить XML-файл взамен и попытаться разобрать его без везения.Parsing XML Object Python 3.4
Я пробовал использовать Element Tree и другие модули без везения. Я считаю, что может возникнуть проблема с самим объектом XML.
#Imorting URL Request Modules for API Calls
#Also importing ElemenTree as it seems to be best for XML parsing
import urllib.request
import urllib.parse
import re
import xml.etree.ElementTree as ET
from urllib import request
#Now I can make the API call.
id_request = urllib.request.urlopen('http://eutils.ncbi.nlm.nih.gov/entrez/eutils/esummary.fcgi?db=pubmed&id=17570568')
#id_request will be an object that I'm not sure I understand?
#id_request Returns: "<http.client.HTTPResponse object at 0x0000000003693FD0>"
#Let's now read this baby in XML format!
id_pubmed = id_request.read()
#If I look at the id_pubmed object, I not have the XML file I want to parse.
Вы можете увидеть, что файл XML id_pubmed зовёт/печатает здесь: http://eutils.ncbi.nlm.nih.gov/entrez/eutils/esummary.fcgi?db=pubmed&id=17570568
Мой вопрос я не могу получить элемент дерева, чтобы разобрать это на всех. Я пробовал:
tree = ET.parse(id_pubmed)
root = tree.getroot()
, а также различные другие предложения от https://docs.python.org/3/library/xml.etree.elementtree.html#module-xml.etree.ElementTree
Это похоже на работу! Спасибо, я подозревал, что это проблема с методом, который я пытался использовать на моем объекте. – Sean
Ahh, я попытался сделать это раньше, и это не сработало. Он работает сейчас! – Sean
Рад, что он работает на вас. Я хотел бы попросить вас принять ответ, если его работа (щелкнув галочку на левой стороне), если ответ был вам полезен. Было бы полезно сообществу –