首页 > 解决方案 > Python检查元素中键的值并返回列表中的元素

问题描述

我有一个 json 文件,我正在用json库读取这个文件

这是 json 内容(示例)

{
  "type": "champion",
  "format": "standAloneComplex",
  "version": "10.18.1",
  "data": {
    "Aatrox": {
      "version": "10.18.1",
      "id": "Aatrox",
      "key": "266",
      "name": "Aatrox"
    },
    "Ahri": {
      "version": "10.18.1",
      "id": "Ahri",
      "key": "103",
      "name": "Ahri",
    },
}

现在如何检查是否key等于 266 并返回 的值name

我正在尝试这样的事情

import json
with open('./source/champion.json') as json_file:
    data_champs = json.load(json_file)['data']
    for champ in data_champs:
        for champ_info in data_champs[champ]:
            if champ['key'] == 266:
                print(champ)

但返回 TypeError:字符串索引必须是整数

标签: pythonlistobject

解决方案


下面(仅迭代值,因为键在这里并不重要)

import json

with open('data.json') as f:
    data = json.load(f)['data']
    for v in data.values():
        if v['key'] == '266':
            print(v['name'])
            break

输出

Aatrox

推荐阅读