JSON支持数据格式
1、对象(字典)。使用花括号
2、列表(数组)。使用方括号
3、整形、浮点数、布尔类型还有null类型
4、字符串类型(字符串必须要用双引号,不能用单引号)
多个数据之间使用逗号分开
注意:json本质上就是一个字符串
字典和列表转JSON
1、dumps
import json
books = [
{
'title': '三国演义',
'price': 20
},
{
'title': '红楼梦',
'price': 30
}
]
books_json = json.dumps(books)
print(books_json)
print(type(books_json))
结果:
[{"title": "\u4e09\u56fd\u6f14\u4e49", "price": 20}, {"title": "\u7ea2\u697c\u68a6", "price": 30}]
<class 'str'>
可以看到单引号变成了双引号
切类型为str
2、dump
import json
books = [
{
'title': '三国演义',
'price': 20
},
{
'title': '红楼梦',
'price': 30
}
]
with open('books.json', 'w', encoding='utf-8') as fp:
# fp.write(books_json)
json.dump(books, fp, ensure_ascii=False)
使用dump方法,可以直接将列表嵌套字典的数据格式转化成json格式并保存到指定的文件中。
另外需要注意的是,我们需要将ensure_ascii 关掉,否则有中文的时候会乱码
将一个json字符串load成Python对象
1、loads
json_str = '[{"title": "三国演义", "price": 20}, {"title": "红楼梦", "price": 30}]'
books = json.loads(json_str)
print(books)
2、load
with open('books.json', 'r', encoding='utf-8') as fp:
movies = json.load(fp)
使用load 解析json文件