json解析成对象,json在python中的用法
在Python中解析JSON对象在本章中,我们将向您展示如何使用Python语言对JSON对象进行编码和解码。
json处理模块的主要任务是将一个JSON对象转换成Python数据类型进行处理,反之亦然,将Python数据类型转换成JSON对象(字符串流)在不同模块或系统之间传输。
Python解析JSON对象1的目录。JSON数据格式2的特点。常用方法总结。序列化和反序列化3.1序列化3.2反序列化
1.JSON数据格式的特点是对象被表示为键值对。数据由逗号分隔的大括号保存。对象保存在方括号中。数组{students: [{name :北山拉,年龄:20},{name: kldmj ,年龄:30},{name: bhdlb ,年龄:17} ]} {students: [{name :北山拉,年龄:20},{name: kldmj ,年龄:30},{name: bhdlb ,年龄:
以上是一个JSON格式的数据。它像Python中的字典数据类型一样工作。我们可以通过json模块将其转换成字符串,反之亦然。
JSON还支持各种数据类型。其数据类型与Python数据类型的比较如下:
对象——指定数组3354列表字符串3354字符串编号—— int/float真/假3354真/假null ——无2。json模块中总结了常用的方法。主要有四个函数用于处理json,即:
Load():从JSON字符串读取数据并转换为Python数据类型Load():从JSON文件读取数据并转换为Python数据类型dumps():将Python数据类型转换为JSON字符串dumps():将Python数据类型转换为JSON字符串并写入文件3。序列化和反序列化
JSON数据到Python数据的转换称为反序列化,Python数据到JSON数据的转换称为序列化)3.1序列化:将Python数据转换为JSON字符串的方法。
我们先来看一个简单的例子。
导入数据={ 学生:[{ 姓名:北山拉,年龄:20},{ 姓名: kldmj ,年龄:30},{ 姓名: bhdlb ,年龄:17 }]} print(type(data))print(data)JSON _ str=JSON . dumps(data)print(type(JSON _ str))class dict :学生:[{ 姓名:北山拉,年龄:{ 姓名: kldmj ,年龄:30},{ 姓名:
导入数据={ 学生:[{ 姓名:北山拉,年龄:20},{ 姓名: kldmj ,年龄:30},{ 姓名: bhdlb ,年龄:17}]}打印(类型(数据))打印(数据)json_str=json.dumps(数据,分隔符=( ,:),缩进=2)打印(json _ str) class dict 学生:[{ 姓名:北山拉,年龄:20},{ 姓名:
import data={ students :[{ name : beish anla , age: 20},{name: kldmj , age: 30},{name: bhdlb ,Age :17 }]} with open( students.txt , w) as fp: json.dump (data,fp,guarantee _ ASCII=false)print( finish )这样就把数据写入students . txt,看是否已经写入。
3.2反序列化是JSON数据到Python类型数据的转换,称为反序列化。可以通过两种方法来实现:loads()/load()。
import with open( students . txt )as FP:data=JSON . load(FP) 取出字典键为students的数据,得到一个列表,然后从这个列表中取第一个数据 print(data[ students ][0]){ name : Bei shanla , age: 20}。parse_int参数的默认值是None。如果parse _ int被指定来解码JSON int字符串,那么它可以被用来为JSON integer使用另一种数据类型或解析器。
Parse_int参数,这里我们简单的把它指定为float类型。
用open (students.txt )导入为FP: data=json.load (FP,parse _ int=float)print(data){ students :[{ name :北山拉, age: 20.0},{name: kldmj , age: 30.0},{name: bhdlb , age: 17.0}]}可以看到,age是一个整数类型,已经被parse _ int转换为float类型。
object_hook的默认值是none,object _ hook是可选函数。该函数可用于实现自定义解码器。指定负责将反序列化的基本类型对象转换为自定义类型对象的函数。
Def JSON (DCT): #如果isinstance (DCT,Dict)和DCT中的 students 将在此处遍历所有字典数据类型:return DCT[ students ]else:return student(DCT[ Name ],DCT[ age ])import JSON with open( students . txt )as FP:data=JSON . load(FP,object _ hook=from JSON)print(data)[Name:Bei shanla,age: 20,name: kldmj,age: 30,Name:BH
就这样结束了。如果对你有帮助,请喜欢并关注评论。你的赞扬对我很重要。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。