我有一个看起来像这样的字符串:
"buyer=Bob&seller=Jan&id_a=234"
我想把它转换成字典:
{"buyer":"Bob", "seller":"Jan", "id_a":234}
但是,这个字符串可以以任何顺序出现,所以它也可以看起来像这样“seller=Jan&buyer=Bob&id_a=234”。当然,这仍然会产生相同的字典。
我怎样才能在 python 中轻松地做到这一点?一开始我使用的是 .split() ,但是当我意识到有多种可能的排序时,我将不得不创建一个 super 困惑的解决方案来适应它。有什么想法吗?
最佳答案
您可以使用 urllib.parse.parse_qs
parse_qs
将解析作为字符串参数给出的查询字符串(application/x-www-form-urlencoded 类型的数据)并将数据作为字典返回。字典键是唯一的查询变量名称,值是每个名称的值列表。
>>> import urllib.parse
>>> urllib.parse.parse_qs("buyer=Bob&seller=Jan&id_a=234")
{'buyer': ['Bob'], 'seller': ['Jan'], 'id_a': ['234']}
您还可以使用 urllib.parse.parse_qsl
,它将解析作为字符串参数给出的查询字符串(应用程序/x-www-form-urlencoded 类型的数据)并返回名称、值对列表。
>>> urllib.parse.parse_qsl("buyer=Bob&seller=Jan&id_a=234")
[('buyer', 'Bob'), ('seller', 'Jan'), ('id_a', '234')]
关于python - 如何遍历一个字符串并转换成字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63571094/