Python 3.x 如何从不可iterable json对象中搜索特定单词
我正在做简历解析器。现在我正试图为代码添加活力。因此,让我们考虑文件夹中有两个简历,我正在解析它们,并在API中以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":
[
{
"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')