【问题标题】:Parsing XML object in python 3.9在 python 3.9 中解析 XML 对象
【发布时间】:2021-08-25 20:22:51
【问题描述】:

我正在尝试使用 NCBI API 获取一些数据。我正在使用requests 连接到 API。

我坚持的是如何将请求返回的 XML 对象转换为我可以解析的东西?

到目前为止,这是我的函数代码:

def getNCBIid(speciesName):
    import requests
    
    base_url = "https://eutils.ncbi.nlm.nih.gov/entrez/eutils/"
    
    url = base_url + "esearch.fcgi?db=assembly&term=(%s[All Fields])&usehistory=y&api_key=f1e800ad255b055a691c7cf57a576fe4da08" % speciesName
    
    #xml object
    api_request = requests.get(url)

【问题讨论】:

标签: python xml ncbi


【解决方案1】:

您可以为此使用 BeautifulSoup 之类的东西(“this”是“转换和解析 xml 对象”)。

您调用的xml对象仍然是响应对象,您需要先从该对象中提取内容。

from bs4 import BeautifulSoup

def getNCBIid(speciesName):
    import requests
    
    base_url = "https://eutils.ncbi.nlm.nih.gov/entrez/eutils/"
    
    url = base_url + "esearch.fcgi?db=assembly&term=(%s[All Fields])&usehistory=y&api_key=f1e800ad255b055a691c7cf57a576fe4da08" % speciesName
    
    #xml object. <--- this is still just your response object
    api_request = requests.get(url)
     
    # grab the response content 
    xml_content = api_request.content
    
    # parse with beautiful soup        
    soup = BeautifulSoup(xml_content, 'xml')

    # from here you would access desired elements 
    # here are docs: https://www.crummy.com/software/BeautifulSoup/bs4/doc/

【讨论】:

  • soup = BeautifulSoup(xml_content, 'xml') 不起作用。我确实安装了beautifulsoup4,并没有抛出关于导入它的错误
  • 我的错,你需要这个:lxml.de/elementsoup.html
  • 这是错误-“bs4.FeatureNotFound:找不到具有您请求的功能的树构建器:xml。您需要安装解析器库吗?”
  • @user16168208 查看我上面链接的解析器。
猜你喜欢
  • 1970-01-01
  • 2014-07-30
  • 2011-07-28
  • 2020-05-29
  • 2018-01-27
  • 1970-01-01
  • 2012-07-06
  • 2015-09-12
  • 1970-01-01
相关资源
最近更新 更多