我有一个字符串,其中包含稍后在代码中需要使用的信息,并且我想通过以下方式从字符串中创建字典。
该字符串的键以“。”结尾。
我想要一个像这样的字符串:
"Mem. 3000 GB Nm. Mario Andrew Ag. 34 Str. Photoliss Street Nr. 45B"
Run Code Online (Sandbox Code Playgroud)
成为这个命令:
{"Mem": "3000 GB", "Nm": "Mario Andrew", "Ag": "34", "Str": "Photoliss Street", "Nr": "45B"}
Run Code Online (Sandbox Code Playgroud)
键与字符串之间可以不同,因此它不遵循模板。
尝试使用正则表达式。
例如:
import re
s = "Mem. 3000 GB Nm. Mario Andrew Ag. 34 Str. Photoliss Street Nr. 45B"
data = re.split(r"(\w+)\.", s)[1:]
print({k: v.strip() for k, v in zip(data[::2], data[1::2])})
print(dict(zip(data[::2], data[1::2])))
Run Code Online (Sandbox Code Playgroud)
输出:
{'Mem': '3000 GB', 'Nm': 'Mario Andrew', 'Ag': '34', 'Str': 'Photoliss Street', 'Nr': '45B'}
Run Code Online (Sandbox Code Playgroud)