Python 2.7 使用python将格式化的自定义字符串集存储到字典
我需要在dict对象中获取“result”,我正在循环并获取以下格式的键和值,这是我在变量“opp”中定义的 我需要的是我想将数据(即来自opp)存储到dict。我如何才能做到这一点 这是我的密码:Python 2.7 使用python将格式化的自定义字符串集存储到字典,python-2.7,python-3.x,object,dictionary,pyyaml,Python 2.7,Python 3.x,Object,Dictionary,Pyyaml,我需要在dict对象中获取“result”,我正在循环并获取以下格式的键和值,这是我在变量“opp”中定义的 我需要的是我想将数据(即来自opp)存储到dict。我如何才能做到这一点 这是我的密码: for service, svc_limits in result.items(): for limit_name, limit in svc_limits.items(): for warn in limit.get_warnings(): opp
for service, svc_limits in result.items():
for limit_name, limit in svc_limits.items():
for warn in limit.get_warnings():
opp = ("'{service}/'{limit_name}'': '[{u}]'".format(
service=service,limit_name=limit_name,u=str(warn))
)
我的示例输出:
{"contact": {"permanentnumber":"sample123","tempnum":"jki345"}}
从中,我得到的输出为
contact/permanentnumber:sample123
contact/tempnum:jki345
并将其作为单独的字符串数据类型获取
我需要以字典格式存储这组字符串,以便使用dump写入YAML文件,但它不起作用。只有一组值被写入文件。我需要在新文件中存储这两个值
opp = ("'{service}/'{limit_name}'': '[{u}]'".format(
service=service,
limit_name=limit_name,
u=str(warn)
)
)
samp = {opp}
它只返回Set dtatype,但我需要的是字典
set(["'Contact/'permanentnumber'': '[4]'"]) <type 'set'>
set(["'Contact/'temporarynum' ': '[4]'"]) <type 'set'>
set([“'Contact/'permanentnumber':”[4]”)
集合([“'Contact/'temporarynum':”[4]”)
如何处理这个问题?在Python中,如果
a
是一个变量,您可以:
x = {a}
然后,x
将是一个包含一个元素的集合。如果您想让x成为一个dict
,请执行以下操作:
x = {'somekey': a}
或:
使用什么作为somekey
取决于您的应用程序,但不将{“contact”:{“permanentnumber”:“sample123”,“tempnum”:“jki345”}}转换为:
contact/permanentnumber: sample123
contact/tempnum: jki345
通过做
import sys
import ruamel.yaml
result = {"contact": {"permanentnumber":"sample123","tempnum":"jki345"}}
opp = {}
for service, svc_limits in result.items():
for limit_name, limit in svc_limits.items():
opp["{service}/{limit_name}".format(service=service, limit_name=limit_name)] = \
"{u!s}".format(u=limit)
ruamel.yaml.round_trip_dump(opp, sys.stdout)
这将为您提供YAML输出:
contact/tempnum: jki345
contact/permanentnumber: sample123
在Python中,如果a
是一个变量,则执行以下操作:
x = {a}
然后,x
将是一个包含一个元素的集合。如果您想让x成为一个dict
,请执行以下操作:
x = {'somekey': a}
或:
使用什么作为somekey
取决于您的应用程序,但不将{“contact”:{“permanentnumber”:“sample123”,“tempnum”:“jki345”}}转换为:
contact/permanentnumber: sample123
contact/tempnum: jki345
通过做
import sys
import ruamel.yaml
result = {"contact": {"permanentnumber":"sample123","tempnum":"jki345"}}
opp = {}
for service, svc_limits in result.items():
for limit_name, limit in svc_limits.items():
opp["{service}/{limit_name}".format(service=service, limit_name=limit_name)] = \
"{u!s}".format(u=limit)
ruamel.yaml.round_trip_dump(opp, sys.stdout)
这将为您提供YAML输出:
contact/tempnum: jki345
contact/permanentnumber: sample123