如何使用python从JSON文件中提取元素?
我有下面的JSON文件,如果name元素是如何使用python从JSON文件中提取元素?,python,json,python-3.x,Python,Json,Python 3.x,我有下面的JSON文件,如果name元素是jim,我试图从每个项目中提取值dob\u year 这是我的尝试: import json with open('j.json') as json_file: data = json.load(json_file) if data['name'] == 'jim' print(data['dob_year']) 错误: File "extractjson.py", line 6 if data['name'] ==
jim
,我试图从每个项目中提取值dob\u year
这是我的尝试:
import json
with open('j.json') as json_file:
data = json.load(json_file)
if data['name'] == 'jim'
print(data['dob_year'])
错误:
File "extractjson.py", line 6 if data['name'] == 'jim' ^ SyntaxError: invalid syntax
这是我的档案
[
{
"name": "jim",
"age": "10",
"sex": "male",
"dob_year": "2007",
"ssn": "123-23-1234"
},
{
"name": "jill",
"age": "6",
"sex": "female",
"dob_year": "2011",
"ssn": "123-23-1235"
}
]
您需要迭代JSON文件中的列表
data = json.load(json_file)
for item in data:
if item['name'] == 'jim':
print(item['dob_year'])
data
是一个字典列表!不能直接访问键值对。
尝试将其封装在循环中,以检查列表中的每个dict:
导入json
将open('j.json')作为json_文件:
data=json.load(json_文件)
对于内置数据:
如果设置为['name']=='jim':
打印(设置['dob_year'])
我建议使用:
返回条目列表,以及保存该列表的方式。您必须遍历所有列表项,然后在列表项中搜索您的字段。
此外,如果这是一项重复性的任务,则从中生成一个函数。您可以通过这种方式传递不同的文件、要提取的字段等,从而使您的工作更轻松
例如:
def extract_info(search_field, extract_field, name, filename):
import json
with open(filename) as json_file:
data = json.load(json_file)
for item in data:
if item[search_field] == name:
print(item[extract_field])
extract_info('name','dob_year','jim','j.json')
您的数据是一个字典列表。如果d['name']='jim',你需要在数据中循环d的
(d['dob_year'])
我得到了这个错误:文件“extractjson.py”,第6行如果set['name']='jim'^SyntaxError:无效语法
啊,是的,我忘了结尾的冒号,如果set['name'],那一行应该是=='jim':
我得到了错误:文件“extractjson.py”,第6行if data['name']='jim'^SyntaxError:无效语法
json.load()
def extract_info(search_field, extract_field, name, filename):
import json
with open(filename) as json_file:
data = json.load(json_file)
for item in data:
if item[search_field] == name:
print(item[extract_field])
extract_info('name','dob_year','jim','j.json')