当前位置: 首页 > 知识库问答 >
问题:

Python中密钥对的Json转储

上官霄
2023-03-14

我有下面的文件,它是json转储的结果。

"fdd6a102-359c-4527-8469-4ef01a9c0076": "[\n  {\n    \"resource_status\": \"CREATE_COMPLETE\", \n    \"resource_name\": \"i4_instance_internal_port\", \n    \"resource_type\": \"OS::Neutron::Port\", \n    \"physical_resource_id\": \"5db1d412-9a43-45c7-b72d-0dbe4eb16497\", \n    \"updated_time\": \"2017-07-14T09:00:44\"\n  }, \n  {\n    \"resource_status\": \"CREATE_COMPLETE\", \n    \"resource_name\": \"i3_instance\", \n    \"resource_type\": \"OS::Nova::Server\", \n    \"physical_resource_id\": \"50375d90-5b57-412e-afe3-fdddefbd2f41\", \n    \"updated_time\": \"2017-07-14T09:00:44\"\n  }, \n  {\n    \"resource_status\": \"CREATE_COMPLETE\", \n    \"resource_name\": \"i3_v1_instance_volume\", \n    \"resource_type\": \"OS::Cinder::Volume\", \n    \"physical_resource_id\": \"6750dc3d-e682-4a0c-a177-83a7252822fb\", \n    \"updated_time\": \"2017-07-14T09:00:44\"\n  }\n]\n"

我想这个文件是乱七八糟的。它的格式不对。我研究了如何在json中转储

def pp_another_json(myDict):
    import io
    try:
        to_unicode = unicode
    except NameError:
        to_unicode = str

    # Write JSON file
    with io.open('data.json', 'w', encoding='utf8') as outfile:
        str_ = json.dumps(myDict,
                          indent=4, sort_keys=True,
                          ensure_ascii=False)
        outfile.write(to_unicode(str_))


class getstackList():
    def getStackID(self):
        stacks = get_objects('stacks')
        myDict = {}
        for stack in stacks:
            try:
                myDict[stack.id] = subprocess.check_output(["openstack", "stack", "resource", "list", stack.id, "-f", "json"])
                pp_another_json(myDict)
            except subprocess.CalledProcessError as e:
                print("Error")

openstack资源列表-f json的输出格式如下

[
  {
    "resource_status": "CREATE_COMPLETE",
    "resource_name": "i4_instance_internal_port",
    "resource_type": "OS::Neutron::Port",
    "physical_resource_id": "5db1d412-9a43-45c7-b72d-0dbe4eb16497",
    "updated_time": "2017-07-14T09:00:44"
  },
  {
    "resource_status": "CREATE_COMPLETE",
    "resource_name": "i3_instance",
    "resource_type": "OS::Nova::Server",
    "physical_resource_id": "50375d90-5b57-412e-afe3-fdddefbd2f41",
    "updated_time": "2017-07-14T09:00:44"
  },
]

现在我的问题

  1. json转储文件在我看来并不像json。如何使其格式正确

如果有人能解释我的json文件,这将是有帮助的。或者如果没有请指导我到可以帮助我理解嵌套字典的链接

编辑:获取我在下面做的值,并给我

值错误:解压缩的值太多

    with open('data.json') as data_file:
        data_loaded = json.load(data_file)
        for key, value in data_loaded:
            print(data_loaded[key][0]['resource_status'])

共有1个答案

屠嘉勋
2023-03-14

在python中,JSON转储可以看作是一个简单的字典。因此,对于第一部分,您可以使用以下内容:

import json
#Assuming 'mydict' contains the json dump

with open('out.json', 'w') as outfile:
    json.dump(mydict, outfile)

现在进入第二部分,假设对于示例中的第一个元素(fdd6a102-359c-4527-8469-4ef01a9c0076"),您需要访问列表中第一个元素的资源状态键,您只需使用以下方法:

myjson["fdd6a102-359c-4527-8469-4ef01a9c0076"][0]['resource-status']

更多信息可以在这里找到。

最后一部分,您将在嵌套JSON上查看此答案。

 类似资料:
  • 我有作为字符串的公钥和私钥,它们是由Webcrypto API RSA-OAEP算法生成的。我想加密和解密一些纯文本,使用这些和获得异常时,试图转换字符串到字节数组 Java代码: 例外情况: 线程“main”Java.lang.IllegalArgumentException中出现异常:Java.util.base64$Decoder.Decode0(base64.:714)Java.util.

  • 问题内容: 我正在使用发布JSON响应的第三方工具。它工作得很好,但是我需要使用的键之一里面有一个冒号,而且我不知道如何在JavaScript中选择该对象。 例如: 我该如何选择?当我将冒号留在其中以及尝试放下冒号时,会出现语法错误。 问题答案: 这很简单: 点/括号符号

  • 我用过这个命令 生成密钥库。它工作正常,但从我读到的内容来看,这个命令还应该提示您输入密钥密码(而不是存储密码)?我从来没有收到过这样的提示。我能跑 查看密钥库的内容。钥匙似乎就在那里。。。正确的别名在那里。在哪里获取/设置特定别名的密码? 我有一个key.properties在Android目录 在build.gradle我有: 当我试图生成一个发布版本时,我得到了 我想它可能与keyPassw

  • 问题内容: 从值中获取单个密钥 我想从以下JSON进行向后选择。我想提取特定状态的缩写。在这种情况下,缩写是关键,而我要开头的值就是值。 当然,我可以遍历每个值,将值与我的值进行比较,并在匹配时选择键。这是处理类似问题的最佳方法吗?或者,还有更好的方法? 反转JSON数据 另一种选择是在处理的早期反转此数据,以给我自己交换密钥/值的一组相似值。我会对看到有效地执行此操作的方法感兴趣。 问题答案:

  • 我有一个用秘密定义的Azure密钥库,我可以使用“Azure密钥库”任务在devops构建管道中访问它。现在我需要将秘密变量传递给python内联脚本。 由于它是加密的,python无法直接读取该值。我如何解密并传递它们。这个秘密持有Databricks的访问令牌。我们正在尝试使用DevOps管道创建Databricks集群。 我的Yaml有以下任务 Azure KeyVault Powershe

  • 我需要在apache nifi中进行json转换。有效负载中的json键将动态生成。例如,在下面给出的输入中,“客户”具有属性“fname”和“lname”。我需要更改这个“fname”- 因为我是nifi的新手。我不知道从哪里开始。我试过一些json变形金刚比如jolt。但是没有达到预期的效果。 我使用的颠簸变换如下: 产生了输出 我需要实现的输入和预期输出如下所示: *有没有任何方法可以在使用