Python URL编码的urllib.urlencode替代方案
我正在尝试向只接受XML的API发送请求。我使用Python URL编码的urllib.urlencode替代方案,python,urlencode,stringio,Python,Urlencode,Stringio,我正在尝试向只接受XML的API发送请求。我使用elementtree.SimpleXMLWriter构建XML树,它存储在一个StringIO对象中。一切都很好 问题是我必须对StringIO对象进行URL编码才能将其发送到API。但当我尝试时,我得到: File "C:\Python27\lib\urllib.py", line 1279, in urlencode if len(query) and not isinstance(query[0], tuple): Attrib
elementtree.SimpleXMLWriter
构建XML树,它存储在一个StringIO对象中。一切都很好
问题是我必须对StringIO对象进行URL编码才能将其发送到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__'
显然,这一点已经被讨论过了。我只是想知道是否还有其他用于URL编码字符串的内置函数,特别是那些不需要调用len()
的函数,这样我就可以编码这个StringIO对象了
谢谢
PS:我愿意使用StringIO以外的东西来存储XML对象,如果这是一个更简单的解决方案的话。我只需要为SimpleXMLWriter提供某种类型的“”来存储XML。您可以通过调用其getvalue()方法从StringIO获取字符串,并将其传递给urllib。您可以通过调用其getvalue()方法从StringIO获取字符串,并将其传递给urllib。StringIO实例就像一个文件,不像一根绳子。它没有
len()
。使用my\u string\u io\u varaible.getvalue()
获取字符串值,并将其传递给需要字符串的urlencode()
也许您可以对嵌入到XML中的URL进行编码,而不是整个过程。
StringIO
实例就像一个文件,而不是字符串。它没有len()
。使用my\u string\u io\u varaible.getvalue()
获取字符串值,并将其传递给需要字符串的urlencode()
也许您可以对嵌入到XML中的URL进行urlencode
URL编码,而不是整个过程