json文件处理
什么是json
JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式。采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
JSON支持数据格式
- 字典。使用花括号。
- 列表。使用方括号。
- 整形、浮点型、布尔类型、None类型。
- 字符串类型(字符串必须要用双引号,不能用单引号)。
多个数据之间使用逗号分开,json本质上就是一个字符串。
字典和列表转JSON
import json
movies = [
{
'title': '盗梦空间',
'price': 9.3
},
{
'title': '楚门的世界',
'price': 9.3
}
]
json_str1 = json.dumps(movies)
json_str2 = json.dumps(movies, ensure_ascii=False)
print(json_str1)
print(json_str2)
[{"title": "\u76d7\u68a6\u7a7a\u95f4", "price": 9.3}, {"title": "\u695a\u95e8\u7684\u4e16\u754c", "price": 9.3}]
[{"title": "盗梦空间", "price": 9.3}, {"title": "楚门的世界", "price": 9.3}]
由于json在dump的时候,只能存放ASCII的字符,因此会将中文进行转义,这时候我们可以使用ensure_ascii=False
关闭这个特性。
在Python中。只有基本数据类型int
、float
、str
、list
、dict
、tuple
才能转换成JSON格式的字符串。
将json数据直接dump到文件中:
json模块中除了dumps函数,还有一个dump函数,这个函数可以传入一个文件指针,直接将字符串dump到文件中。
import json
movies = [
{
'title': '盗梦空间',
'price': 9.3
},
{
'title': '楚门的世界',
'price': 9.3
}
]
with open('movie.json', 'w') as fp:
json.dump(movies, fp)
将一个json字符串load成Python对象:
import json
jsonStr = '[{"title": "星际穿越", "price": 9.3}, {"title": "机器人总动员", "price": 9.3}]'
books = json.loads(jsonStr, encoding='utf-8')
print(type(books))
print(books)
<class 'list'>
[{'title': '星际穿越', 'price': 9.3}, {'title': '机器人总动员', 'price': 9.3}]
直接从文件中读取json:
import json
with open('movie.json', 'r', encoding='utf-8') as fp:
jsonStr = json.load(fp)
print(jsonStr)