python-3.x - 如何从不可迭代的 json 对象中搜索特定单词
问题描述
我正在研究简历解析器。现在我正在尝试为代码添加活力。因此,让我们考虑一个文件夹中有两个简历,我正在解析它们并在我的 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))
基本上,我们正在检查 in 的值dict
是否为string
orlist
并尝试与字符串或列表项匹配。
由您决定使其不区分大小写或您想要的任何更改
推荐阅读
- android - 在Android中将动画添加到自定义视图的最佳方法
- rabbitmq - 如何忽略 maxAttempts 并向 DLQ 发送消息?
- python - 正则表达式:除一个条件之外的所有条件
- pyside - 如何在 PySide 中正确定位我的 QLabel 小部件
- spring-boot - 在 Spring Boot 反应式 Web 应用程序上启用 SSL 并在控制台中对打印异常噪音进行 http 调用
- excel - 尝试在 VBA 中复制 SUMIF() 函数时出现错误 9
- javascript - 反应路由器渲染道具路由总是重新渲染组件
- javascript - Javascript中错误的字符串替换
- python - BeautifulSoup 方法从元素中检索文本
- node.js - 为什么我们使用 res.sendFile 将相同的 index.html 文件发送回客户端?