-6

我有一个包含多个对象的 JSON 文件

{
  "Elements": [
    {
      "name": "Hydrogen",
      "symbol": "H"
    },
        {
      "name": "Lithium",
      "symbol": "Li"
    },
        {
      "name": "Sodium",
      "symbol": "Na"
    }
  ]
}

我希望能够使用名称搜索它们,但只能使用一个名称。到目前为止,我已经能够读取所有元素以及类似的输出

Hydrogen
Lithium
Sodium

但我只想读取其中一个对象而不是所有对象。到目前为止,我的python代码是

import json

f = open('elements.json')
data = json.load(f)

for element in data['Elements']:
    print(element['name'])

4

2 回答 2

0

尝试添加一个if参数以检查它是否是您要查找的所需项目,然后只需记录其所有信息。

import json

with open('elements.json') as f:
   data = json.load(f)
choice = input("Choose element: ")

for element in data['Elements']:
   if element['name'] == choice:
       for x, y in element.items():
         print(x.title() + "-> " + y)
   
于 2020-09-03T18:43:23.800 回答
0

据我了解,您要求一种解决方案来获取具有提供的元素名称的第一个元素。这里是:

def match(data, name):
        for element in data['Elements']:
            if element['name'] == name:
                return element

另一种选择: 找到与标准匹配的第一个序列项

 def match(data, name):
        return next(element for element in data['Elements'] if element['name'] == name)
于 2020-09-03T18:46:39.500 回答