怎么在Python中提取JSON格式数据

  介绍

怎么在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格式数据