【问题标题】:How to print out json objects without using [0]?如何在不使用 [0] 的情况下打印出 json 对象?
【发布时间】:2019-02-10 09:30:57
【问题描述】:

所以我一直在玩 JSON 并试图打印出来但没有任何运气。基本上 JSONI 试图打印的是 cityplace,您将在此处看到:

{
  'id': '5235246c-ac21a7-151128-8cd9-512512',
  'type': 'Hello world',
  'metadata': {
    'invite_text': "A very cool text here!!",
    'cityplace': [
      {
        'display_text': 'Stackoverflow City',
      }
    ]
  }
}

我为代码所做的是,我创建了一个循环,通过调用名称 test_print 打印出来,这给了我打印出来的 JSON 对象。

我所做的尝试是

print(test_print['metadata']['cityplace']['display_text'])

不幸的是,这给了我错误

TypeError: list indices must be integers or slices, not str

所以我需要做的是:

print(test_print['metadata']['cityplace'][0]['display_text'])

现在我的问题是:是否可以在不需要添加[0] 的情况下打印出来,因为将来它可能并不总是0

【问题讨论】:

  • print(test_print['metadata']['cityplace'][0]['display_text']) ?
  • 我不太明白你在问什么。这是一个列表,如果你想打印出你需要使用[0]的第一个项目,如果你想打印每个项目,你可以循环遍历
  • @Rakesh 是的,我确实打印出来说它有效,但我的问题是,是否可以在不添加 [0] 的情况下实现它?
  • @DanielRoseman 在这种情况下我怎样才能让它循环?我不知道如何查看列表的长度?还是..?
  • 为什么要检查它有多长?只需for item in test_print['metadata']['cityplace']: print(item['display_text'])

标签: python json


【解决方案1】:

cityplace 是一个列表。使用索引。

例如:

test_print = {
  'id': '5235246c-ac21a7-151128-8cd9-512512',
  'type': 'Hello world',
  'metadata': {
    'invite_text': "A very cool text here!!",
    'cityplace': [
      {
        'display_text': 'Stackoverflow City',
      }
    ]
  }
}

print(test_print['metadata']['cityplace'][0]['display_text'])

或者迭代它。

例如:

for i in test_print['metadata']['cityplace']:
    print(i["display_text"])

【讨论】:

    【解决方案2】:

    cityplace 不是 JSON。它是一个仅包含一个 JSON 的列表。因此,您必须从中选择 JSON,当然也就是 [0]。如果列表将来会有更多元素,则需要迭代

     texts = [city['display_text'] for city in test_print['metadata']['cityplace']
    

    【讨论】:

      【解决方案3】:

      由于您使用的是索引数组,因此访问数组值的唯一方法是使用数组的索引(并且将始终为 0 - 将来不会更改)。

      您可以使用关联数组,以访问访问键及其值。

      这个link 可以帮助你创建关联数组。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-11-19
        • 2011-12-09
        • 2015-09-09
        • 1970-01-01
        • 1970-01-01
        • 2015-05-22
        相关资源
        最近更新 更多