目的
学会使用在python中操作json文件,学习相关函数模块。
JSON是一种流行的数据格式,其用于表示结构化数据。在JSON格式的服务器和Web应用程序之间传输和接收数据是很常见的。
在PYTHON中,JSON作为字符串存在。例如:
p = '{'name':'Bob', 'language':['Python', 'Java']}'
通常将JSON对象存储在一个文件中。
导入JSON模块
import json
在python中解析JSON文件
JSON模块可以很容易地解析JSON字符串和包含JSON对象的文件。
你可以使用json.loads()解析JSON字符串。这个方法返回一个字典
示例1:使用json.loads()解析字符串
import json
person = '{"name": "Bob", "languages": ["English", "Fench"]}'
person_dict = json.loads(person)
# Output: {'name': 'Bob', 'languages': ['English', 'Fench']}
print( person_dict)
# Output: ['English', 'French']
print(person_dict['languages'])
示例2:使用json.load()读取json文件
假如你有一个包含有JSON对象的person.json
import json
with open('path_to_file/person.json') as f:
data = json.load(f)
# Output: {'name': 'Bob', 'languages': ['English', 'Fench']}
print(data)
python转换JSON字符串
你可以使用json.dumps()将一个字典转换为JSON字符串,即序列化。
示例3:将字典转换为JSON
import json
person_dict = {'name':'Bob',
'age':12,
'children':None}
person_json = json.dumps(person_dict)
print(type(person_json))#<class, 'str'>
print(person_json)
下面表格显示python对象和JSON的等效转换。
向文件中写入JSON,使用json.dump()方法
示例 4:
import json
person_dict = {"name": "Bob",
"languages": ["English", "Fench"],
"married": True,
"age": 32
}
with open('person.txt', 'w') as json_file:
json.dump(person_dict, json_file)
python漂亮的打印JSON
为了分析和调试JSON数据,我们可能需要以一种更具有可读性的防暑,打印出它。这可以通过传地indent和sort_keys参数给json.dumps和json.dump方法。
import json
person_string = '{"name": "Bob", "languages": "English", "numbers": [2, 1.6, null]}'
# Getting dictionary
person_dict = json.loads(person_string)
# Pretty Printing JSON string back
print(json.dumps(person_dict, indent = 4, sort_keys=True))