gpt4 book ai didi

python - 将字符串转换为字典 - pythonic Way

转载 作者:太空宇宙 更新时间:2023-11-04 10:29:09 25 4
gpt4 key购买 nike

专家,

我写了一个程序把字符串转换成字典。我能够达到预期的结果,但我怀疑这是否是一种 pythonic 方式。想听听同样的建议。

txt = '''
name : xxxx
desgination : yyyy
cities :
LA : Los Angeles
NY : New York
HeadQuarters :
LA : LA
NY : NY
Country : USA
'''

我使用 (:) 拆分并存储在字典中。这里的 Cities 和 HeadQuarters 包含另一个字典,我为此编写了这样的代码。

if k == 'cities' : 
D[k] = {}
continue
elif k == 'HeadQuarters':
D[k] = {}
continue
elif k == 'LA' :
if D.has_key('cities'):
if D['cities'].get(k) is None:
D['cities'][k] = v
if D.has_key('HeadQuarters'):
if D['HeadQuarters'].get(k) is None:
D['HeadQuarters'][k] = v
elif k == 'NY' :
if D.has_key('cities'):
if D['cities'].get(k) is None:
D['cities'][k] = v
if D.has_key('HeadQuarters'):
if D['HeadQuarters'].get(k) is None:
D['HeadQuarters'][k] = v
else:
D[k]= v

最佳答案

您可以使用现有的 yaml解析器(PyYAML package):

import yaml # $ pip install pyyaml

data = yaml.safe_load(txt)

结果

{'Country': 'USA',
'HeadQuarters': {'LA': 'LA', 'NY': 'NY'},
'cities': {'LA': 'Los Angeles', 'NY': 'New York'},
'desgination': 'yyyy',
'name': 'xxxx'}

解析器按原样接受您的输入,但为了使其更符合 yaml,它需要 small modifications :

--- 
Country: USA
HeadQuarters:
LA: LA
NY: NY
cities:
LA: "Los Angeles"
NY: "New York"
desgination: yyyy
name: xxxx

关于python - 将字符串转换为字典 - pythonic Way,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27929285/

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