JSON在Python中的使用介绍

发布时间:2024-10-15 点击:101
【相关学习推荐:python视频】
json介绍
json(javascript object notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。 它基于javascript programming language, standard ecma-262 3rd edition – december 1999的一个子集。 json采用完全独立于语言的文本格式,但是也使用了类似于c语言家族的习惯(包括c, c , c#, java, javascript, perl, python等)。 这些特性使json成为理想的数据交换语言。
json的两种结构
“名称/值”对的集合(a collection of name/value pairs)。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。
值的有序列表(an ordered list of values)。在大部分语言中,它被理解为数组(array)。
json在python中的使用
在python中操作json时需要引入json标准库。
import json
类型转换
python类型转json:
json.dump()
#1.python的dict类型转json
person_dict = {‘name’: ‘pig’, ‘age’: 18, ‘sex’: ‘man’, ‘hometown’: ‘江西抚州’}
indent参数为缩进空格数
person_dict_json = json.dumps(person_dict, indent=4)print(person_dict_json, ‘\\\\n’)
2.python的列表类型转json
person_list = [‘pig’, 18, ‘man’, ‘江西抚州’]person_list_json = json.dumps(person_list)print(person_list_json, ‘\\\\n’)
3、python的对象类型转json
person_obj = person(‘pig’, 18, ‘man’, ‘江西抚州’)
中间的匿名函数是获得对象所有属性的字典形式
person_obj_json = json.dumps(person_obj, default=lambda obj: obj.dict, indent=4)print(person_obj_json, ‘\\\\n’)
json转python类型:
json.loads()
4、json转python的dict类型
person_json = ‘{ “name”: “pig”,”age”: 18, “sex”: “man”, “hometown”: “江西抚州”}’
person_json_dict = json.loads(person_json)print(type(person_json_dict), ‘\\\\n’)
5、json转python的列表类型
person_json2 = ‘[“pig”, 18, “man”, “江西抚州”]’
person_json_list = json.loads(person_json2)print(type(person_json_list), ‘\\\\n’)
6、json转python的自定义对象类型
person_json = ‘{ “name”: “pig”,”age”: 18, “sex”: “man”, “hometown”: “江西抚州”}’
object_hook参数是将dict对象转成自定义对象
person_json_obj = json.loads(person_json, object_hook=lambda d: person(d[‘name’], d[‘age’], d[‘sex’], d[‘hometown’]))print(type(person_json_obj), ‘\\\\n’)
python和json数据类型对应表
jsonpythonobjectdictarrayliststringstrnumberint,long,floattrue,falsetrue,falsenullnone
需要注意的点
json的键名和字符串都必须使用双引号引起来,而python中单引号也可以表示为字符串,所以这是个比较容易犯的错误!
python类型与json相互转换的时候到底是用load/dump还是用loads\\\\dumps?
不加s的方法入参多了一个fp表示filepath,最后多了一个写入文件的操作。
所以我们在记忆的时候可以这样记忆:
加s表示转成字符串(str),不加s表示转成文件。
相关推荐:编程视频课程

交互设计分享(一)
为什么要保护域名?域名是如此重要?
刚才还是页面现在成了无法访问
腾讯云服务器镜像评测
腾讯云服务器如何搭建网站
云ecs服务器如何注销
云服务器什么时候买
云服务器租用最便宜