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

有麻烦嵌套Python3字典[复制]

颛孙嘉玉
2023-03-14

我正在使用Service Now Rest API检索服务器上的信息,该信息将作为JSON响应返回,我正在将其解码到python3字典中,这样我就可以进一步提取代码中的特定项,但我很难理解如何使用从JSON创建的嵌套字典。有人能帮我理解如何从字典中提取特定值吗。下面是一个返回的示例(缩短)。

#! /usr/bin/python3

# Include required libraries
import requests

# Set the request parameters
url = 'https://example.service-now.com/api/now/table/cmdb_ci_server'
user = 'example'
pwd = 'example'

# Set proper headers
headers = {"Content-Type":"application/json","Accept":"application/json"}

# Do the HTTP request
response = requests.get(url, auth=(user, pwd), headers=headers )

# Check for HTTP codes other than 200
if response.status_code != 200:
    print('Status:', response.status_code, 'Headers:', response.headers, 'Error Response:',response.json())
    exit()

# Decode the JSON response into a dictionary and use the data
data = response.json()

print(data)

下面是一个响应示例(缩短)

{
  "result": [
    {
      "u_raid": "",
      "u_pir_required": "false",
      "u_original_system": "",
      "u_backup_pool": "vsdfnvjsv",
      "u_virtual_ip": "",
      "cpu_speed": "",
      "u_vendor": "",
      "u_lun_tier": "",
      "cost_center": {
        "link": "cdncdnckidnicsw",
        "value": "vfevfdbvfdsbvsdf"
      },
      "dns_domain": "",
      "u_vio2": "",
      "fault_count": "0",
      "u_hardware_type": "",
      "host_name": ""
    }
  ]
}

在完成了一些嵌套字典教程之后,我尝试了以下内容,但运气不太好。

print(data['result']['u_backup_pool'])

TypeError:列表索引必须是整数或片,而不是str

共有1个答案

安坚诚
2023-03-14

'result'的值是一个列表(请注意方括号),其中有一项,请尝试print(数据['result'][0]['u备份池])

 类似资料:
  • 问题内容: 给出以下代码: 我得到以下输出: 因此,出于某种原因,密钥是试图取消对整个结构的编组,而不是仅仅应该解组。我做错了吗,或者这是json编码器中的错误?顺便说一句,正在进行1.2。 问题答案: 为什么最后没有结果 这不是解码器中的错误,而是代码中的错误。你只是将另一个地址为本地指针在。更正的代码: 语义:将地址分配给。这类似于。 的语义:将所有内容复制到指向的地方。 这项工作的一项要求是

  • 我正在努力编写一本嵌套非常多的词典。只有当字典中有“name”:“bingo”时,我才需要获取字典的“main_id”。 我有解决办法,但在我看来是相当丑陋的。 我想知道: 有更好更干净的方法来实现它(总是;)

  • 我正在学习Python,我遇到了一点问题。在我正在学习的课程中看到类似的东西后,我想到了这个简短的脚本。我以前用过“或”和“如果”来表示成功(这里没有太多说明)。出于某种原因,我似乎无法让它工作: 但这很有效: 可能条件不适合这里。但是我试过了,等等。我想有一种方法让它接受猴子或猴子,其他一切都会触发精灵。

  • 问题内容: 我在理解Python3中的嵌套字典理解时遇到了麻烦。从下面的示例中得到的结果输出的是正确的结构,没有错误,但仅包含一个内部键:值对。我还没有找到像这样的嵌套字典理解的例子。谷歌搜索“嵌套词典理解python”显示了遗留示例,非嵌套理解或使用其他方法解决的答案。我可能使用了错误的语法。 例: 此示例应返回原始字典,但内部值由修改。 outside_dict词典的结构以及结果: 问题答案:

  • 字典是另一种可变容器模型,且可存储任意类型对象。 字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示: d = {key1 : value1, key2 : value2 } 键必须是唯一的,但值则不必。 值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。 一个简单的字典实例: dict = {'

  • 字典是另一种可变容器模型,且可存储任意类型对象。 字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示: d = {key1 : value1, key2 : value2 } 键必须是唯一的,但值则不必。 值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。 一个简单的字典实例: dict = {'