gpt4 book ai didi

python - 从包含键值对的字符串中获取 python 字典

转载 作者:太空狗 更新时间:2023-10-29 20:32:41 32 4
gpt4 key购买 nike

我有一个格式为 python 的字符串:

str = "name: srek age :24 description: blah blah"

有什么办法可以把它转换成字典吗

{'name': 'srek', 'age': '24', 'description': 'blah blah'}  

其中每个条目都是从字符串中获取的(键,值)对。我尝试将字符串拆分为 list by

str.split()  

然后手动删除:,检查每个标签名称,添加到字典中。这种方法的缺点是:这种方法很讨厌,我必须手动删除每对 : 并且如果字符串中有多个单词“value”(例如,blah blah for description), 每个单词将是列表中的一个单独条目,这是不可取的。是否有任何 Pythonic 方式获取字典(使用 python 2.7)?

最佳答案

>>> r = "name: srek age :24 description: blah blah"
>>> import re
>>> regex = re.compile(r"\b(\w+)\s*:\s*([^:]*)(?=\s+\w+\s*:|$)")
>>> d = dict(regex.findall(r))
>>> d
{'age': '24', 'name': 'srek', 'description': 'blah blah'}

解释:

\b           # Start at a word boundary
(\w+) # Match and capture a single word (1+ alnum characters)
\s*:\s* # Match a colon, optionally surrounded by whitespace
([^:]*) # Match any number of non-colon characters
(?= # Make sure that we stop when the following can be matched:
\s+\w+\s*: # the next dictionary key
| # or
$ # the end of the string
) # End of lookahead

关于python - 从包含键值对的字符串中获取 python 字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10380992/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com