目录
1、JSON简介
JSON即 JavaScript 对象标记,通过对象和数组的组合来表示数据。
Json文本存储相比于txt存储更方便,可直接将非字符串内容存入文本中(本质是将非字符串内容直接转换为json文本字符串存入)。
2、JSON对象
在 JavaScript 语言中,一切皆可为 Json 作用对象,即可以通过 Json 表示的任何支持的数据类型,例如:字符串、数字、对象、数组、字典、列表。(为了与其中的对象区分。我将 json 作用对象与数据类型 json 对象分开称呼)
数据类型对象和数组在这里类似于字典与列表,不过Json对象中的键值对是用双引号,字典是单双引号都可以。(Json数据需要用双引号包围,具体见下例)
3、json.dumps 和 json.dump
(1) json.dumps
json.dumps 可将 JSON 作用对象(字典、列表等)转换为JSON文本字符串。
json.dumps 常用参数: 作用对象data,ensure_ascii调节中文乱码, indent缩进。
使用方法见下例:我们需要将data_dict 这个字典数据存入文本。
import json
data_dict = {
'name': 'json',
'age': 15
}
print('data_dict的数据类型:', type(data_dict))
file = open('data.json', 'w', encoding='utf-8')
data = json.dumps(data_dict)
print('data的数据类型:', type(data))
file.write(data)
file.close()
# 输出: data_dict的数据类型: <class 'dict'>
# data的数据类型: <class 'str'>
如果name换成中文名会如何?答案是文件中会乱码,此时需要添加额外参数ensure_ascii。
再加入indent:
data = json.dumps(data_dict, ensure_ascii=False, indent=2)
文件中结果如下:
(2) json.dump
提供直接对文件进行写入。效果如上。
import json
data_dict = {
'name': '约翰',
'age': 15
}
file = open('data.json', 'w', encoding='utf-8')
json.dump(data_dict, file, indent=2, ensure_ascii=False)
4、json.loads 和 json.load
(1) json.loads
json.loads可以将JSON文本字符串转换为JSON作用对象(类似相当于去字符串符号)
import json
data_dict_str = '''
{
"name": "约翰",
"age": 15
}
'''
json_data = json.loads(data_dict_str)
print(json_data)
print(type(json_data))
(2) json.loads
直接从文件中读出 json文本字符串
import json
file = open('data.json', 'r', encoding='utf-8')
data = json.load(file)
print(data)
print(type(data))
结果如上相同。
本人新手,若有错误,欢迎指正;若有疑问,欢迎讨论。若文章对你有用,点个小赞鼓励一下,谢谢,一起加油吧!