"kwargs参数的字符串到kwargs"

2024-09-30 01:32:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一根绳子

s = "title='bah' name='john and jill' purple='haze' none=None i=1"

我正在寻找一种将其放入字典的Python式方法(以及一种不会被额外的空格阻塞的解决方案)?

建议?


Tags: and方法namenone字典title解决方案john
3条回答
>>> from ast import literal_eval
>>> s = "title='bah' name='john' purple='haze' none=None i=1"
>>> dict((k, literal_eval(v)) for k, v in (pair.split('=') for pair in s.split()))
{'purple': 'haze', 'i': 1, 'none': None, 'name': 'john', 'title': 'bah'}

(如果内部字符串包含空白,或者'='显示为键值分隔符以外的任何内容,则此操作将不起作用。显然,越复杂,解析就越困难,所以…)

如果你能像你说的那样控制琴弦,你可以简单地做到这一点

>>> s = "title='bah' name='john' purple='haze' none=None i=1"
>>> eval("dict(%s)"%s.replace(" ",","))
{'i': 1, 'purple': 'haze', 'none': None, 'name': 'john', 'title': 'bah'}
>>> 
>>> dictionary = {}
>>> for i in s.split():
...     dictionary[i.split('=')[0]] = i.split('=')[1]
...
>>> dictionary
{'purple': "'haze'", 'i': '1', 'none': 'None', 'name': "'john'", 'title': "'bah'"}

相关问题 更多 >

    热门问题