首页 > 编程语言 >30. Python json模块

30. Python json模块

时间:2022-09-21 11:58:39浏览次数:69  
标签:dump Python 30 JSON item json 字符串

1. 前言

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,遵循欧洲计算机协会制定的 JavaScript 规范(简称 ECMAScript)。JSON 易于人阅读和编写,同时也易于机器解析和生成,能够有效的提升网信息的传输效率,因此它常被作为网络、程序之间传递信息的标准语言,比如客户端与服务器之间信息交互就是以 JSON 格式传递的。

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

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

2. jons.loads()

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

# coding:utf8
import json
#JOSN字符串
website_info='{"name" : "c语言中文网","PV" : "50万","UV" : "20万","create_time" : "2010年"}'
py_dict=json.loads(website_info)
print("python字典数据格式:%s;数据类型:%s"% (py_dict,type(py_dict)))

输出结果:

python字典数据格式:{'name': 'c语言中文网', 'PV': '50万', 'UV': '20万', 'create_time': '2010年'};数据类型:<class 'dict'>

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

3. 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" : "c语言中文网","PV" : "50万","UV" : "20万","create_time" : "2010年"}
with open("web.josn","a") as f:
    json.dump(ditc_info,f,ensure_ascii=False)

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

{
"name": "c语言中文网",
"PV": "50万",
"UV": "20万",
"create_time": "2010年"
}

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

import json
item_list = []
item = {'website': 'C语言中文网', 'url': "c.biancheng.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 文件,其内容如下:

["语言中文网", "c.biancheng.net"]

4. json.load()

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

import json
site = {'name':'c语言中文网',"url":"c.biancheng.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': 'c语言中文网', 'url': 'c.biancheng.net'}

5. json.dumps()

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

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

输出结果如下:

转换之后的数据类型为: <class 'str'>
{"website": "C语言中文网", "url": "c.biancheng.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 字符串。

标签:dump,Python,30,JSON,item,json,字符串
From: https://www.cnblogs.com/jiajunling/p/16715077.html

相关文章

  • python 时间调度
    Prerequisite主要分为两个:查看时间任务调度查看时间fromdatetimeimportdateimporttimelocaltime=time.asctime(time.localtime(time.time())).split('')[......
  • python学习笔记:pytest单元测试框架
    一、安装配置和运行规则1、安装:pipinstallpytest查看安装版本:pytest--version 2、Pytest用例运行规则用Pytest写用例时候,一定要按照下面的规则去写,否则不符合规......
  • “Python 中的监督学习”Datacamp 课程回顾
    “Python中的监督学习”Datacamp课程回顾这是我刚刚参加的课程的回顾。这篇评论作为学习辅助:帮助我在第一次学习后综合信息,并希望将内容保留更长时间。这篇文章还提供了......
  • 用于数据准备的 Python — 探索和清理数据集
    用于数据准备的Python—探索和清理数据集什么是数据准备?数据准备是收集、组合、结构化和组织数据的过程,以便将其用于商业智能(BI)应用程序、分析和数据可视化。此......
  • 你应该知道的 Python F 字符串技巧
    Python你应该知道的PythonF字符串技巧停止打印(f”variable={variable}”)Photoby约尔格·安杰利on不飞溅早在2016年,Python3.6就引入了一种新的字符串格......
  • 力扣2(java&python)-两数相加(中等)
    题目:给你两个 非空的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表......
  • python (),[], {}的含义
    1、python()表示元组,元组是一种不可变序列1)创建如:tuple=(1,2,3)取数据tuple[0]......tuple[0,2].....tuple[1,2]......2)修改元祖:元组是不可修改的3)删除元祖del......
  • 25. [实例]Python lxml应用
    1.前言本节通过编写一个简单的爬虫程序,进一步熟悉lxml解析库的使用。下面使用lxml库抓取猫眼电影Top100榜(点击访问),编写程序的过程中,注意与《Python爬虫抓取猫眼电......
  • GSON搞定任何JSON数据
    一、Gson介绍GSON是Google提供的用来在Java对象和JSON数据之间进行映射的Java类库。可以将一个Json字符转成一个Java对象,或者将一个Java转化为Json字符串。特点:快速......
  • 24. Python lxml库的安装和使用
    1.前言lxml是Python的第三方解析库,完全使用Python语言编写,它对Xpath表达式提供了良好的支持,因此能够了高效地解析HTML/XML文档。本节讲解如何通过lxml库解析H......