通过URL发送列表

时间:2010-03-10 14:29:22

标签: python string url unicode

我有一个列表,我需要通过URL发送给第三方供应商。我不知道他们使用的语言。

列表打印出来像这样:

[u'1', u'6', u'5']

我知道你用utf-8对字符串进行编码吧?所以有几个问题。

我可以通过网址发送列表吗? 通过URL时,你会出现在另一端吗? 如果是这样,我该如何删除它们?

我不确定要搜索哪些关键字来帮助我,所以任何资源也都会有所帮助。

3 个答案:

答案 0 :(得分:4)

  

我可以通过网址发送列表吗?

没有。 URL只是文本。如果您想要一种方法来打包结构化信息,您必须与您正在谈论的提供商达成一致。

URL中结构的一种标准编码,可能是您可能需要的,也可能不是您需要的,是在查询字符串中使用多个具有相同名称的参数。此格式来自HTML表单提交:

http://www.example.com/script?par=1&par=6&par=5

可能被视为代表参数par,其中包含三项列表作为其值。或者可能不是,由接收者来决定。例如,在PHP应用程序中,您必须为参数par[]命名,以使其接受数组值。

  

我知道你用utf-8编码字符串吧?

没有。 u'...'字符串是本机Unicode字符串,其中每个索引表示整个字符,而不是任何特定编码中的字节。如果您想要UTF-8字节,请在URL编码之前写入u'...'.encode('utf-8')。 UTF-8是一个很好的默认选择,但同样:接收方想要的编码取决于该应用程序。

  

在浏览网址时,你是否会出现在另一端?

u是字符串的文字表示的一部分,与'引号本身相同。它们不是字符串值的一部分,并且不会被print或当连接到其他字符串时回显,除非您通过调用repr故意要求文字表示。

答案 1 :(得分:1)

u''不是utf-8,它是python 2.x的python unicode字符串

要通过网址发送,你需要使用像.encode('utf-8')这样的utf8对它们进行编码,并且还需要urlencode,而list不能通过URL发送,你需要将其作为字符串。

基本上,您需要按照以下步骤进行操作

python list - > unicode string - > utf8 string - > url encode - >通过适当的urllib api发送它

答案 2 :(得分:0)

不正确的。 unicode文字使用Python的内部编码,在编译时决定。

您无法发送任何“通过”网址。选择一个协议。并且在发送之前编码,可能是UTF-8。