发布网友 发布时间:2022-04-19 15:06
共5个回答
懂视网 时间:2022-04-06 07:40
【相关学习推荐:python视频】
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。 它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。 这些特性使JSON成为理想的数据交换语言。
“名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。
值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。
在Python中操作JSON时需要引入json标准库。
import json
类型转换
Python类型转JSON:
json.dump()
#1.Python的dict类型转JSON
person_dict = {‘name’: ‘pig’, ‘age’: 18, ‘sex’: ‘man’, ‘hometown’: ‘江西抚州’}
person_dict_json = json.dumps(person_dict, indent=4)print(person_dict_json, ‘ ’)
person_list = [‘pig’, 18, ‘man’, ‘江西抚州’]person_list_json = json.dumps(person_list)print(person_list_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, ‘ ’)
JSON转Python类型:
json.loads()
person_json = ‘{ “name”: “pig”,”age”: 18, “sex”: “man”, “hometown”: “江西抚州”}’
person_json_dict = json.loads(person_json)print(type(person_json_dict), ‘
’)
person_json2 = ‘[“pig”, 18, “man”, “江西抚州”]’
person_json_list = json.loads(person_json2)print(type(person_json_list), ‘
’)
person_json = ‘{ “name”: “pig”,”age”: 18, “sex”: “man”, “hometown”: “江西抚州”}’
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), ‘ ’)
Python和JSON数据类型对应表
JSON | Python |
---|---|
object | dict |
array | list |
string | str |
number | int,long,float |
true,false | True,False |
null | None |
需要注意的点
JSON的键名和字符串都必须使用双引号引起来,而Python中单引号也可以表示为字符串,所以这是个比较容易犯的错误!
Python类型与JSON相互转换的时候到底是用load/dump还是用loadsdumps?
不加s的方法入参多了一个fp表示filepath,最后多了一个写入文件的操作。
所以我们在记忆的时候可以这样记忆:
加s表示转成字符串(str),不加s表示转成文件。
热心网友 时间:2022-04-06 04:48
1、说明:
python3通过json模块load函数来解析文件。
2、代码示例:
首先编写一个json文件j.txt,内容如下:
{"errno":1,"errmsg":"操作成功!","data":[]}
python代码如下:
输出如下:
1
操作成功!
0
3、函数说明:
load(fp, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw)
反序列化fp(一个.read()包含 - 支持类文件对象一个JSON文件),以一个Python对象。
object_hook是将与被调用的可选功能任何对象文本解码(一个``dict``)的结果。返回值object_hook将用来代替dict。此功能可用于实现自定*码器(例如JSON-RPC级提示)。
object_pairs_hook是将与被调用的可选功能任何对象的结果与对的有序列表字面解码。该的返回值object_pairs_hook将用来代替dict。
此功能可用于实现依赖于定制解码器命令该键和值对被解码(例如,collections.OrderedDict会记得插入的顺序)。如果object_hook也定义了object_pairs_hook优先。
要使用自定义JSONDecoder子类,与cls指定它kwarg;否则JSONDecoder使用。
4、其它说明:
也可以使用json.loads函数来直接处理字符串,方法如下:
o=json.loads('{"errno":0,"errmsg":"操作成功!","data":[]}')
热心网友 时间:2022-04-06 06:06
下面给出一个使用python解析json的简单例子:热心网友 时间:2022-04-06 07:40
我之前就写好了教程了,自己看就懂了:热心网友 时间:2022-04-06 09:32
import json