python - 如何遍历一个字符串并转换成字典

标签 python string parsing

我有一个看起来像这样的字符串:

"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/

相关文章:

c++ - 从 Boost.Spirit.Qi 制作shared_ptr

python - 通过 Python 返回 JSON 数组中的值和数据

java - Android 远程 XML 解析(文档生成器)

python - 环境错误 : HTTPSConnectionPool while pip install on docker container

c - strlen 没有返回正确的字符数

来自十六进制数组的 Java 初始化字符串

swift - SDWebImage 不工作

python - 解析 Python 文件以检索变量、值、函数定义

python - 在 django ajax_lookup 中配置 ajax 查找

python - NumPy: pretty-print 表格数据