Python 3.x 如何从不可iterable json对象中搜索特定单词

Python 3.x 如何从不可iterable json对象中搜索特定单词,python-3.x,Python 3.x,我正在做简历解析器。现在我正试图为代码添加活力。因此,让我们考虑文件夹中有两个简历,我正在解析它们,并在API中以JSON格式返回所需的信息。 [ { "dob": [], "education": [ [ "MCA", "2009" ] ], "email": "Id:abcd@gmail.com", "mobile_number": "+911234567", "name":

我正在做简历解析器。现在我正试图为代码添加活力。因此,让我们考虑文件夹中有两个简历,我正在解析它们,并在API中以JSON格式返回所需的信息。

[
  {
    "dob": [], 
    "education": [
      [
        "MCA", 
        "2009"
      ]
    ], 
    "email": "Id:abcd@gmail.com", 
    "mobile_number": "+911234567", 
    "name": "abcd", 
    "personal_website": [
      "abcd@gmail.com", 
      "http://www.arthavidhya.com", 
      "http://www.myhealthwatcher.com", 
      "http://www.i-southernworld.com/", 
      "http://www.i-chiletravel.com/"
    ], 
    "skills": [
      "Bootstrap", 
      "Javascript", 
      "Js", 
      "Jquery", 
      "Interactive", 
      "My-sql", 
      "Css", 
      "Ajax", 
      "Apache", 
      "Php", 
      "Codignator"
    ]
  }, 
  {
    "dob": [], 
    "education": [
      [
        "Btech", 
        "2018"
      ]
    ], 
    "email": "xyz@gmail.com",  
    "mobile_number": "+91987654321", 
    "name": "xyz", 
    "personal_website": [
      "xyz@gmail.com", 
      "https://github.com/xyz"
    ], 
    "skills": [
      "Sqlite", 
      "Tensorflow", 
      "C++", 
      "C", 
      "Php", 
      "Android", 
      "Mysql", 
      "Flask", 
      "Nlp", 
      "Javascript", 
      "Css", 
      "Keras", 
      "Machine learning", 
      "Python"
    ]
  }
现在假设我以“Keras”的形式传递输入,那么应该只显示第二个文件。这里可以使用什么逻辑?我在这里面临的困难是我的输出不可接受。有人能给我一些关于如何解决这个问题的提示吗


如果我的问题不清楚或需要更多细节,请发表评论。

我想你可以这样做

def function1(json_object, name):
    match = []
    for dict in json_object:
        for key, value in dict.items():
            if (isinstance(value, str) and value == name) or (isinstance(value, list) and name in value):
                match.append(dict)
    return match


def main():
    print(json.dumps(function1(DATA, "Keras"), indent=2))
基本上,我们检查
dict
中的值是否为
字符串
列表
,并尝试与字符串或列表项匹配


由您决定是否区分大小写或进行任何更改,您的输出非常适合,因为它是一个列表。 你可以做的是,循环浏览每份简历,检查简历的技能部分是否存在所需的技能,如果存在,则将其添加到具有相同技能的简历列表中。最后,返回json格式的列表。我希望下面的代码片段将使它更清楚

import json
#resumes is the json data you have, skill is a string of the skill you're looking for.
def match_skill(resumes, skill):
  resumes_with_skill = []
  for resume in resumes:
    if skill in resume['skills']:
      resumes_with_skill.append(resume)
  return json.dumps(resumes_with_skill)

match_skill(data, 'Keras')