我正在尝试向仅接受 XML 的 API 发送请求。我曾经elementtree.SimpleXMLWriter
构建 XML 树并将其存储在 StringIO 对象中。这一切都很好,花花公子。
问题是我必须对 StringIO 对象进行 urlencode 才能将其发送到 API。但是当我尝试时,我得到:
File "C:\Python27\lib\urllib.py", line 1279, in urlencode
if len(query) and not isinstance(query[0], tuple):
AttributeError: StringIO instance has no attribute '__len__'
显然,这已作为Python 的一个问题进行了讨论。我只是想知道是否有任何其他内置函数用于对字符串进行 urlencoding,特别是那些不需要调用len()
以便我可以对这个 StringIO 对象进行编码的函数。
谢谢!
PS:如果这是一个更简单的解决方案,我愿意使用 StringIO 以外的东西来存储 XML 对象。我只需要某种“文件”SimpleXMLWriter
来存储 XML。