怎么在Python中提取JSON格式数据?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
Python可以做什么
Python是一种编程语言,内置了许多有效的工具,Python几乎无所不能,该语言通俗易懂,容易入门,功能强大,在许多领域中都有广泛的应用,例如最热门的大数据分析,人工智能,网页开发等。
<强> JSON
强>
JSON (JavaScript对象表示法)是一种轻量级的数据交换格式,它使得人们很容易的进行阅读和编写。同时也方便了机器进行解析和生成。适用于进行数据交互的场景,比如网站前台与后台之间的数据交互。
Python中自带了JSON模块,直接进口JSON即可使用
JSON简单说就是JavaScript中的对象和数组,所以这两种结构就是对象和数组两种结构,通过这两种结构可以表示各种复杂的结构。
对象:对象在js中表示为{}括起来的内容,数据结构为{键:值,键:值,……}的键值对的结构,在面向对象的语言中,主要为对象的属性,价值为对应的属性值,所以很容易理解,取值方法为对象。关键获取属性值,这个属性值的类型可以是数字,字符串,数组,对象这几种。
数组:数组在js中是中括号[]括起来的内容,数据结构为(“Python",“javascript",“c++“,…),取值方式和所有语言中一样,使用索引获取,字段值的类型可以是数字,字符串,数组,对象几种。
<强> json模块使用强>
json模块提供了四个功能:转储,转储,负载,负载,用于字符串和python数据类型进行转换。
<强> json.loads() 强>
json.loads()方法将json文本字符串转换为python对象,从json到python的类型转化对照如下:
JSONPythonobjectdictarrayliststringunicodenumber (int) intnumber(真正的)floattrueTruefalseFalsenullNone示例:
import json #,JSON文本字符串 时间=str_list & # 39; [“a",“b",“c",“d"] & # 39; 时间=str_dict & # 39; {“name":“小白“,“age": 1000} & # 39; #,json.loads将文本字符串转化为JSON对象,在Python里就是Python对象了 时间=data_list json.loads (str_list) 时间=data_dict json.loads (str_dict) print(类型(data_list)) print(类型(data_dict)) 打印(data_list) 打印(data_dict)
运行结果:
& lt;类& # 39;列表# 39;在
引用>
& lt;类& # 39;dict # 39;在
[& # 39;一个# 39;& # 39;b # 39;, & # 39; c # 39;, & # 39; d # 39;]
{& # 39;名字# 39;:& # 39;小白& # 39;,& # 39;年龄# 39;:1000}
说明:
JSON文本字符串中,数据应该用双引号括起来,不然会报错误,比如上面str_list和str_dict中的值都应该用双引号,数字就不用。
<强> json.dumps 强>
json.dumps()方法实现python类型转化为JSON字符串,返回一个str对象把一个python对象编码转换成JSON字符串。从python到JSON的类型转化对照如下:
PythonJSONdictobjectlist, tuplearraystrstringint,浮点数,整数,,float-derived EnumsnumberTruetrueFalsefalseNonenull示例:
import json data_list =, (1、2、3、4) data_dict =,{& # 39;名字# 39;:& # 39;小黑& # 39;,& # 39;年龄# 39;:1000} print (json.dumps (data_list)) 打印(json.dumps (data_dict)运行结果:
(1、2、3、4)
引用>
{“name":“\ u5c0f \ u9ed1",“age": 1000}
说明:转储方法可以将Python数据类型转化为JSON文本字符串,但是可以看到当有中文的时候,转换后中文字符都变成Unicode字符,要输出中文需要设置转储方法的参数ensure_ascii=True设置为ensure_ascii=False。如下:
打印(json.dumps (data_dict ensure_ascii=False)) #,运行结果:{“name":,“小黑,,,“age":, 1000}此外,如果需要将数据保存为文本的时候,还需要指定文件的编码格式为utf - 8,比如将上面的data_dict数据(里面有中文字符)保存为数据。json文件,代码如下:
with 开放(& # 39;data.json& # 39; & # 39; w # 39;,编码=& # 39;utf - 8 # 39;), as f: f.write才能(json.dumps (data_dict ensure_ascii=False)否则打开保存的文件,会有乱码。
如果要处理的是文件而不是字符串,可以使用json.dump()和json.load()来编码和解码JSON数据。比如:
#,写入数据到文件 data_list =,[{& # 39;名字# 39;:& # 39;小白& # 39;},{& # 39;名字# 39;:& # 39;小黑& # 39;}] with 开放(& # 39;data2.json& # 39; & # 39; w # 39;,编码=& # 39;utf - 8 # 39;), as f: json.dump才能(data_list f ensure_ascii=False) #,从文件读取数据 with 开放(& # 39;data2.json& # 39; & # 39; " # 39;,编码=& # 39;utf - 8 # 39;), as f: 时间=data json.load (f) 打印(数据)怎么在Python中提取JSON格式数据