概述
1、Json简介
什么是json
JSON(JavaScript Object Notation,JS对象标记)是一种轻量级的数据交换格式。它基于ECMAScript(w3c制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据,简洁和清晰的层次结构使得JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机图解析和生成,并有效地提升网络传输效率。
JSON支持数据格式
1.对象(字典)。使用花括号。
2.列表(数组)。使用方括号。
3.整形、浮点型。
4.字符串类型(字行串必须要用双引号,不能用单引号)。
注意:
- 多个数据之间使用逗号分开。
- json本质上就是一个字符串。
2、dump成json字符串以及编码问题
例1:字典和列表转JSON:
# -*- coding: utf-8 -*-
import json
books = [
{'title':'钢铁是怎样炼成的', 'price':9.8},
{'title':'红楼梦', 'price':9.9}
]
json_str = json.dumps(books, ensure_ascii=False)
print(type(json_str))
# <class 'str'>
print(json_str)
# [{"title": "钢铁是怎样炼成的", "price": 9.8}, {"title": "红楼梦", "price": 9.9}]
- 因为Json在dump的时候,只能存放asctii的字符,因此会将中文进行转义,这时候我们可以使用ensure_ascii=False关闭这个特性。
- 在python中,只有基本数据类型才能转换成JSON格式的字行串。即:int、float、str、list、dict、tuple。
- JSON解析网站:Json.cn 在线解析Json(格式化)
- 转换成json字符串后,单引号会变成双引号(json中只能用双引号)
例2:python对象转换为json字符串并保存
import json
# 将python对象转换为json字符串
persons = [
{'username':'zhiliao', 'age':10, 'contry':'china'},
{'username':'hello', 'age':20, 'contry':'china'}
]
json_str = json.dumps(persons)
# 保存为json文件“person.json”
with open('person.json', 'w', encoding='utf-8') as fp:
#
fp.write(json_str)
# dumps()需要执行2步,将转换之后,再写入
json.dump(persons, fp, ensure_ascii=False)
# dump()需要执行1步,转换和写入一并完成
注意:
对于文件的保存:
- 如果有中文,写入时需要指定‘encoding’='utf-8'
- 用json.dump时,默认编码为‘ascii’,有中文时,需要关掉
- Json.dump()与Json.dumps()区别:dumps不能直接存到文件,dump可以(有fp指针)
3、load成Python对象
# 1)json字符串load成python对象
json_str = '[{"title": "钢铁是怎样炼成的", "price": 9.8}, {"title": "红楼梦", "price": 9.9}]'
books = json.loads(json_str, encoding='utf-8')
print(type(books))
print(books)
# 2)直接从文件中读取json,为python对象
import json
with open('person.json','r',encoding='utf-8') as fp:
json_str = json.load(fp)
# 注意:从文件读取,需要用load,而不能用loads
print(type(json_str))
print(json_str)
最后
以上就是阳光犀牛为你收集整理的04-数据存储(01 python对象与json字符串的转换、保存读取)的全部内容,希望文章能够帮你解决04-数据存储(01 python对象与json字符串的转换、保存读取)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复