Python 向urllib.request.read传递字符串但获取字节属性时出错

Python 向urllib.request.read传递字符串但获取字节属性时出错,python,xml,urllib,Python,Xml,Urllib,我正在尝试从Yahoo finance API读取一个XML文件。到目前为止,我已经尝试了以下方法: from xml.dom.minidom import parse #Start Get Employees xml = urllib.request.urlopen('https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.stocks%20where%20symbol%3D

我正在尝试从Yahoo finance API读取一个XML文件。到目前为止,我已经尝试了以下方法:

 from xml.dom.minidom import parse
 #Start Get Employees
        xml = urllib.request.urlopen('https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.stocks%20where%20symbol%3D%22wfc%22&diagnostics=true&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys')
        dom = parse(xml.read())
        numemployees = dom.getElementsByTagName('FullTimeEmployees')
        numemployees = name[0].firstChild.nodeValue
 #End Get Employees
但是,这引发了一个例外:

AttributeError: 'bytes' object has no attribute 'read'
我认为这是因为如果它不识别字符串,它会假定我传递的是字节模式。但是,我正在传递一个字符串,所以我不知道这里有什么问题

完整堆栈跟踪:

Traceback (most recent call last):
  File "C:\Python34\lib\tkinter\__init__.py", line 1487, in __call__
    return self.func(*args)
  File "C:\Users\kylec\Desktop\dm\Mail Server Finder\mailserverfinder.py", line 25, in getServers
    dom = parse(xml.read())
  File "C:\Python34\lib\xml\dom\minidom.py", line 1960, in parse
    return expatbuilder.parse(file)
  File "C:\Python34\lib\xml\dom\expatbuilder.py", line 913, in parse
    result = builder.parseFile(file)
  File "C:\Python34\lib\xml\dom\expatbuilder.py", line 204, in parseFile
    buffer = file.read(16*1024)
AttributeError: 'bytes' object has no attribute 'read'
不包括类似文件的对象,而不是
字节
str
,如其文档中所述:

parse(文件名或文件[,解析器[,bufsize]])

从给定输入返回文档。文件名\u或\u文件可以是 文件名或类似文件的对象

所以你只需要这样做:

dom = parse(xml)

因为
urlopen
返回的
http.client.HTTPResponse
对象类似于文件。

Kyle,很抱歉,您的示例不够清晰。我想这就是你所期望的

from xml.dom.minidom import parseString

employees = urllib.urlopen('https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.stocks%20where%20symbol%3D%22wfc%22&diagnostics=true&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys').read()
dom = parseString(employees)
numemployees = dom.getElementsByTagName('FullTimeEmployees')
numemployees = numeemployees[0].firstChild.nodeValue

xml.read()
调用没有失败。什么是完整回溯?
parse
从何而来?parse来自:from xml.dom.minidom import parse