Python 2.7 使用python将格式化的自定义字符串集存储到字典

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

我需要在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 = ("'{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