Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用Python解析数组请求_Python_Arrays_Parsing - Fatal编程技术网

用Python解析数组请求

用Python解析数组请求,python,arrays,parsing,Python,Arrays,Parsing,是否有一种通用的方法来解析以这种表示法发送的数组 >>> import urlparse >>> urlparse.parse_qs('a=1&a=2')['a'] ['1', '2'] 我希望以下内容的输出是相同的: >>> urlparse.parse_qs('a[0]=1&a[1]=2')['a'] Traceback (most recent call last): File "<stdin>", lin

是否有一种通用的方法来解析以这种表示法发送的数组

>>> import urlparse
>>> urlparse.parse_qs('a=1&a=2')['a']
['1', '2']
我希望以下内容的输出是相同的:

>>> urlparse.parse_qs('a[0]=1&a[1]=2')['a']
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'a'
>>urlparse.parse_qs('a[0]=1&a[1]=2')['a']
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
KeyError:'a'

为什么不是这样呢?

为什么您希望两个完全不同的查询字符串的结果是相同的?在第二个查询字符串中有两个不同的键:
a[0]
a[1]
。它们是字符串,
urlparse
不会进一步解析它们。您将在结果字典中的查询字符串中显示它们的名称下找到它们

如果
urlparse
的行为像您希望的那样,该如何解析

a=1&a=2&a[0]=3&a[1]=4

可能是因为这是一种非常不寻常的构造查询字符串的方法。它来自哪里?@DanielRoseman我在使用mootools时看到它:
var-arr=[1,2];新请求({url:'.''}).post({a:arr})语义上,它们都是web上的数组符号。您的示例我希望被解析为
['3','4','1','2']