Python爬虫——Python json模块常用方法
创始人
2025-05-31 05:30:37

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,遵循欧洲计算机协会制定的 JavaScript 规范(简称 ECMAScript)。

JSON 易于人阅读和编写,同时也易于机器解析和生成,能够有效的提升网信息的传输效率,因此它常被作为网络、程序之间传递信息的标准语言,比如客户端与服务器之间信息交互就是以 JSON 格式传递的。

简单地说,JSON 可以将 JavaScript 对象表示的一组数据转换为字符串格式,以便于在网络、程序间传输这个字符串。并且在需要的时候,还可以将它转换为编程语言所支持的数据格式。本节主要介绍如何实现 JSON 数据与 Python 数据类型间的相互转换。

Python 语言内置了专门处理 JOSN 数据的模块 —— jons 模块,通过该模块就可以完成 JSON 与 Python 两种数据格式的相互转换。

jons.loads()

该方法可以将 json 格式的字符串转换成 Python 对象(比如列表、字典、元组、整型以及浮点型),其中最常用的是转换为字典类型。示例如下:

# coding:utf8
import json
#JOSN字符串
website_info='{"name" : "CSDN","PV" : "2000万","UV" : "800万","create_time" : "1999年"}'
py_dict=json.loads(website_info)
print("python字典数据格式:%s;数据类型:%s"% (py_dict,type(py_dict)))

输出结果:

python字典数据格式:{'name': 'CSDN', 'PV': '2000万', 'UV': '800万', 'create_time': '1999年'};数据类型:

注意:上述示例中 JSON 字符串看上去和 Python 字典非常相似,但是其本质不同,JOSN 是字符串类型,而 Python 字典是 dict 类型。

json.dump()

它可以将 Python 对象(字典、列表等)转换为 json 字符串,并将转换后的数据写入到 json 格式的文件中 ,因此该方法必须操作文件流对象。比如当使用爬虫程序完成数据抓取后,有时需要将数据保存为 json 格式,此时就用到了 json.dump() 方法,语法格式如下:

json.dump(object,f,inden=0,ensure_ascii=False)

参数说明如下:

  • object:Python 数据对象,比如字典,列表等
  • f:文件流对象,即文件句柄。
  • indent:格式化存储数据,使 JSON 字符串更易阅读。
  • ensure_ascii:是否使用 ascii 编码,当数据中出现中文的时候,需要将其设置为 False。

示例示例如下:

import json
ditc_info={"name" : "CSDN","PV" : "2000万","UV" : "800万","create_time" : "1999年"}
with open("web.josn","a") as f:json.dump(ditc_info,f,ensure_ascii=False)

打开 web.json 文件,其内容如下所示:

{
"name": "CSDN",
"PV": "2000万",
"UV": "800万",
"create_time": "1999年"
}

您也可以将 Python 列表转换成 JSON 字符串,并保存至 json 文件中,如下所示:

import json
item_list = []
item = {'website': 'CSDN', 'url': "www.CSDN.net"}
for k,v in item.items():item_list.append(v)
with open('info_web.json', 'a') as f:json.dump(item_list, f, ensure_ascii=False)

打开 info_web.json 文件,其内容如下:

["CSDN", "www.CSDN.net"]

json.load()

该方法用于操作文件流对象,不过它与 dump() 恰好相反,它表示从  json 文件中读取 JSON 字符串,并将读取内容转换为 Python 对象。使用示例如下:

import json
site = {'name':'CSDN',"url":"www.CSDN.net"}
filename = 'website.json'
with open (filename,'w') as f:json.dump(site,f,ensure_ascii=False)
with open (filename,'r') as f:print(json.load(f))

输出结果如下:

{'name': 'CSDN', 'url': 'www.CSDN.net'}

json.dumps()

该方法可以将 Python 对象转换成 JSON 字符串。示例如下:

import json
#python字典
item = {'website': 'CSDN', 'rank': 1}
# json.dumps之后
item = json.dumps(item,ensure_ascii=False)
print('转换之后的数据类型为:',type(item))
print(item)

输出结果如下:

转换之后的数据类型为: 
{"website": "CSDN", "url": "www.CSDN.net"}

最后对上述方法做简单地总结,如下表所示:

JSON方法总结
方法作用
json.dumps()将 Python 对象转换成 JSON 字符串。
json.loads()将 JSON 字符串转换成 Python 对象。
json.dump()将 Python 中的对象转化成 JSON 字符串储存到文件中。
json.load()将文件中的 JSON 字符串转化成 Python 对象提取出来。

综上所述 json.load() 与 json.dump() 操作的是文件流对象,实现了 json 文件的读写操作,而 json.loads() 与 json.dumps() 操作的是 Python 对象或者 JOSN 字符串。

Python教程,8天python从入门到精通,学python看这套就够了

相关内容

热门资讯

【微信小程序】-- 配置uni... 💌 所属专栏:【微信小程序开发教程】 😀 作  ...
TCP/UDP协议 写在前面 下面我们继续说我们传输层的协议,这个协议我们重点看TCP协议,注意TCP是我们经常使用的额...
【C++进阶】十一、哈希的应用... 目录 一、位图的引入 二、位图的应用 三、位图的使用(bitset的使用)...
qq飞车休闲区怎么坐在椅子上,... 1. 走向椅子:走到椅子旁边,面对着椅子。 2. 坐下:调整角色身体,使角色的屁股碰到椅子,身...
爱老婆的说说 极速百科网 极速... 我的老婆,这份爱如同温暖的阳光,照亮了我生活的每一个角落。她是我灵魂的伴侣,是我人生的导师。每当我看...
详解空调压缩机的控制原理及维修... 今天给各位分享详解空调压缩机的控制原理及维修要素的知识,其中也会对空调压缩机控制原理图进行解释,如果...
观音老母的生日是指哪一天 极速... 观音老母,又称观音菩萨,是中国传统文化中的重要神祇之一。然而,关于观音老母的生日的确切日期,不同的宗...
SpringCloudConf... 之前项目使用的是nacos作为配置中心,使用过程中,还是有不少问题的&#...
一文弄懂Flink网络流控及反... 一文弄懂Flink网络流控及反压1. 为什么需要网络流控?2. 网络流控的实现:静态限...
一站式优化方案:助力外贸网站在... 作为一名从事外贸行业多年的人士,我深知谷歌SEO对于一个外贸网站的重要性。 在众多的优...
红包吉利数,红包吉利数:文化与... 1. 168元:一路发。 2. 188元:要发发。 3. 666元:顺顺利利。 4...
鬼吹灯系列一共有哪儿几个 极速... 鬼吹灯是一部非常受欢迎的网络小说系列,一共有两部,分别是鬼吹灯1和鬼吹灯2。每部都有多个故事组成,每...
合作市景点,合作市:自然与人文... 合作市,作为甘南藏族自治州的首府,拥有着丰富的自然和人文景观。这里,我将为您推荐几个值得一游的景点。...
自欺欺人最可悲句子,自欺欺人:... 2. “我已经很努力了,但就是没有成果。” 这句话往往只是自我安慰的借口,实际上只是没有找到正确的方...
安装MonkeyDev,及各种... 官方地址:https://github.com/AloneMonkey/MonkeyD...
数据库工具DBeaver的用法 1.介绍dbeaver是免费和开源(GPL)为开发人员和数据库管理员通用...
qq为什么换不了头像,**QQ... **QQ头像更换不了的原因及解决方法****一、引言****二、更换头像的步骤**通常,更换QQ头像...
网络用语鱼塘什么意思,鱼塘的含... 鱼塘,网络流行词,该词的走红源自于周杰伦的一句歌词“坏情绪是条泥鳅,你没抓好,它溜走了”。 以...
pirelli是什么牌子轮胎,... 倍耐力轮胎是当今世界享有盛名的轮胎公司之一,1872年创立于意大利,是国际米兰足球俱乐部主要赞助商。...
九月二十六是什么星座,标题建议... 首先,我会去全网搜集关于九月二十六出生的人是什么星座的相关信息。 一般而言,我们会认为阳历九月...
ChatGPT扫盲设计模式 设计模式是软件开发中经常使用的一种方法,它们是针对常见问题提出的可复用的解决方案。了解...
centos系统/dev/ma... 最近在做虚拟机部署docker微服务时,发现磁盘内存占满,无法进行操作。...
描写冬天来了的句子与段落,标题... 1. 冬天的脚步越来越近,窗外的风带来了丝丝寒意。街头的落叶在寒风中舞动,仿佛在告别着即将离去的秋天...
【GPT4】GPT4 官方报告... 【youcans的GPT学习笔记】GPT4 官方报告解读1. GPT-4 官方介绍2. GPT-4 ...
有关河北理工学院的几个问题 极... 河北理工学院位于河北省唐山市,是一所以工为主、工理结合、面向全国招生、服务冶金行业和地方经济的多科性...
大熊猫怎么画简单几笔画出 极速... 1. 首先,画出一个圆形的头,这是大熊猫的身体的主要部分。 2. 在头的顶部,画出两个半圆形的...
咫尺天涯下一句是什么(咫尺天涯... 今天给各位分享咫尺天涯下一句是什么的知识,其中也会对咫尺天涯啥意思进行解释,如果能碰巧解决你现在面临...
56 | fstab开机挂载 1 fstab的参数解析 【file system】【mount point】【type】【opti...
2023深度解析数据治理平台建... 前言  阿里巴巴一直将数据作为自己的核心资产与能力之一,通过多年的实践探索建设数据应用...
美容师资格证怎么考,如何考取美... 作为一名美容师,想要获得专业认证,考取美容师资格证是必不可少的。下面是一些关于如何考取美容师资格证的...