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

时间:2016-07-26 18:18:24

标签: python-2.7 python-3.x object dictionary pyyaml

我需要在dict对象中获取“结果”,我循环并获取以下格式的键和值,我已在变量“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}

它只返回我设置的dtatype,但我需要的是字典。

set(["'Contact/'permanentnumber'': '[4]'"]) <type 'set'>
set(["'Contact/'temporarynum' ': '[4]'"]) <type 'set'>

我该如何处理?

1 个答案:

答案 0 :(得分:0)

在Python中,如果a是变量,那么你可以:

x = {a}

然后x将是一个包含一个元素的集合。如果您希望x为dict,请执行:

x = {'somekey': a}

或:

x = dict(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