JSON在Python中的使用介绍

相关学习推荐:python视频

JSON介绍

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。 它基于Jav/ L . W ^ FaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScf 0 k H P L E Zript, Perl, Python等)。 这些特性使JSON成为理想的数据交} m z a q }换语言。

JSON的两种结构

  1. “名称/值”对的集合(A collection of name/vax b B T L + - Llue pairsU z 4 5)。不同的语言中,它被理解为对象(object),纪录(record),y v D u 2 6 I L结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed lis= ! ^ @t),或) g R { 7 T K m者关联数组 (associative array)。

  2. 值的有序列表(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’: ‘E t 0 _ D s : +man’, ‘hometown’: ‘江西抚州’}

indent参数为缩进空格数

person_dict_json = json.dumps(person_dict, indent=4)print(person_dictQ 8 p R v m_json, ‘\n’)

2.Python的列表类型转JSON

person_list = [‘pig’, 18, ‘man’, ‘江西抚州’]person_list_json = json.dumps(person_list)print(person_list_json, ‘[ L & h z p a\n’)

3、Python的对象类型转JSON

person_obj = Person(‘pig( K % Z = U W’, 18, ‘man’, ‘江西抚州’)

中间的匿名函数是获得对象所有属性的字典形式

pery O 6 ; L Z D {son_obj_json = j! W ~ R Z fson.dumps(( N - * s iperson_obj, default=lambda obj: obj.dict, indent=4)print(person_obj_json, ‘\n’)

JSON转Python类型:

jsoM # 9n.loads()

4、JSON转Python的dict类型

person_json = ‘{ “name”: “pig”,”age”: 18,{ % x+ A 8sex”/ W # 6 _ ) ~ S _: “man”,T G { “hometown”: “f H q w K ~ P江西抚州”}’
person_json_dict, 9 s [ t W 7 j t = json.+ U z k w ;loads(person_json)print(type(person_json_dict), ‘\n’)

5、JSx ^ c i + h = DON转Python的列表类型

person_json2 = ‘[“pig”, 18, “man”P % t w U, “江西抚州”]’
persoe g Wn_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对象转成自定义u ` 2 3 l对象

perl a u p # -son_json_obj = json.loads(person_json, oO d %bject_hook=lamo D C N ;bda d: Person(d[‘name’], d[‘age’], d[‘sex’], d[‘hometown’]V V T x P r j C @))prW 1 wint(type(person_json! W G I * ` V ; 7_obj), ‘\n’)

Python和JSON数据类型对应表

JSON Python objg y N Q 9 u = + |ect2 X r ^ dict array list string str number int,long,float true,# I ~ } F : ~ Tfalse TJ X Brue,False null None

需要注意的点

JSON的键名和字符串都必须使用双引号引起来,而Python中单引号也可以表示为{ p . n H T L ~字符串,所以这是个比较容易犯的错误!d H M t

Python类型与JSON相互转换的时候到底是用load/dump还是用loads\dumps?

不加s的方法入参多了一个fp表示filepath,最后多了一个写入文件的操作。

所以我们在记忆的时候可以这样记忆:

加s表示转成字符串(str),不加s表示转成文件。

相关推荐:编程视频课程

以上就是JSONR , s E G在Python中的使用介绍的详细内容。