python:如何将查询字符串转换为json字符串?

Bin*_*hen 14 python json

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

a=1&b=2
Run Code Online (Sandbox Code Playgroud)

到json字符串

{"a":1, "b":2}
Run Code Online (Sandbox Code Playgroud)

现有解决方案吗?

Tom*_*lak 34

import json
import urlparse

json.dumps(urlparse.parse_qs("a=1&b=2"))
Run Code Online (Sandbox Code Playgroud)

产量

'{"a": ["1"], "b": ["2"]}'
Run Code Online (Sandbox Code Playgroud)

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

  • 对于Python 3用户:`urlparse`现在称为`urllib.parse` (4认同)
  • 可以作为 `from urllib import parse as urlparse` 导入,而无需更改其余代码。 (3认同)
  • 如果您需要解析为单个值,则可以使用 `parse_qsl` - `dict(urlparse.parse_qsl('a=1&b=2'))` 产生 `'{"a": ["1"], "b" : ["2"]}'` (2认同)

小智 6

蟒蛇 3.x

from json import dumps
from urllib.parse import parse_qs

dumps(parse_qs("a=1&b=2"))
Run Code Online (Sandbox Code Playgroud)

产量

{"b": ["2"], "a": ["1"]}
Run Code Online (Sandbox Code Playgroud)


Ash*_*ary 5

>>> strs="a=1&b=2"

>>> {x.split('=')[0]:int(x.split('=')[1]) for x in strs.split("&")}
{'a': 1, 'b': 2}
Run Code Online (Sandbox Code Playgroud)