我试图向只接受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__'
显然这已经被讨论为an issue with Python。我只是想知道是否还有其他内置函数用于urlencoding一个字符串,特别是那些不需要调用len()
以便对这个StringIO对象进行编码的函数。在
谢谢!在
如果使用另一个StringIO>来存储一个XML对象,那就更容易了。我只需要一些“file”来存储XML。在
StringIO
实例类似于文件,而不是字符串。它没有len()
。使用my_string_io_varaible.getvalue()
获取字符串值,并将其传递给需要字符串的urlencode()
。在也许您可以
urlencode
一路嵌入到XML中的url,而不是整个过程。在可以通过调用StringIO的getvalue()方法从StringIO获取一个字符串,并将其传递给urllib。在
相关问题 更多 >
编程相关推荐