替代品urllib.urlencode用于编码URL

2024-04-25 05:35:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图向只接受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。在


Tags: 对象函数pyapilenlibxmlurllib
2条回答

StringIO实例类似于文件,而不是字符串。它没有len()。使用my_string_io_varaible.getvalue()获取字符串值,并将其传递给需要字符串的urlencode()。在

也许您可以urlencode一路嵌入到XML中的url,而不是整个过程。在

可以通过调用StringIO的getvalue()方法从StringIO获取一个字符串,并将其传递给urllib。在

相关问题 更多 >