【问题标题】:How to read a single object from a json file containing multiple objects using python? [closed]如何使用python从包含多个对象的json文件中读取单个对象? [关闭]
【发布时间】:2020-12-23 01:14:16
【问题描述】:

我有一个包含多个对象的 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'])

【问题讨论】:

  • 你想要什么输出?
  • 你想要Hydrogen这样的东西吗?
  • 所以只读你想要的。你有一个清单。通过索引访问您想要的元素。我不清楚你卡在哪里了。

标签: python json python-3.8 rad python-jsons


【解决方案1】:

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

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

另一种选择: find first sequence item that matches a criterion

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

【讨论】:

    【解决方案2】:

    尝试添加 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)
       
    

    【讨论】:

      猜你喜欢
      • 2019-01-31
      • 1970-01-01
      • 2021-03-03
      • 2018-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-25
      相关资源
      最近更新 更多