16

我想转换这样的查询字符串:

a=1&b=2

到 json 字符串

{"a":1, "b":2}

任何现有的解决方案?

4

4 回答 4

40
import json
import urlparse

json.dumps(urlparse.parse_qs("a=1&b=2"))

产量

'{"a": ["1"], "b": ["2"]}'

这实际上比你的更好{"a":1, "b":2},因为 URL 查询字符串可以合法地多次包含相同的键,即每个键有多个值。

于 2012-08-11T07:31:40.727 回答
6

Python 3.x

from json import dumps
from urllib.parse import parse_qs

dumps(parse_qs("a=1&b=2"))

产量

{"b": ["2"], "a": ["1"]}
于 2015-07-30T20:36:36.087 回答
5
>>> strs="a=1&b=2"

>>> {x.split('=')[0]:int(x.split('=')[1]) for x in strs.split("&")}
{'a': 1, 'b': 2}
于 2012-08-11T07:26:15.523 回答
0
dict((itm.split('=')[0],itm.split('=')[1]) for itm in qstring.split('&'))
于 2014-08-14T11:56:46.377 回答