首页 > 编程语言 >Day 41 41.2 Python中json模块之dumps参数详解

Day 41 41.2 Python中json模块之dumps参数详解

时间:2023-05-21 18:33:30浏览次数:53  
标签:False Python dream 41.2 41 dumps python json True

Python的JSON用法之dumps的各种参数用法(详细)

JSON 是用于存储和交换数据的语法。

JSON (JavaScript Object Notation)最初是用 JavaScript 对象表示法编写的文本,但随后成为了一种常见格式,被包括Python在内的众多语言采用。

在使用json方法的时候要记住先引进这个库

import json

  • python里面的语言对象一般只有python能读懂,为了能比较好储存,而且能够让别的编程语言也能读懂这些数据,就会用json来转换储存。
  • 或者说把json数据类型的转化成python的数据类型。

【一】json的数据类型和python数据类型的区别

Python Json
dict object
list,tuple array
str,unicode string
int,long,float number
True true
False false
None null

【二】json库的一些方法

方法 作用
json.dumps() 将python对象编码成Json字符串
json.loads() 将Json字符串解码成python对象
json.dump() 将python中的对象转化成json储存到文件中
json.load() 将文件中的json的格式转化成python对象提取出来

【三】json.dump()和json.dumps()的区别

json.dumps()是把python对象转换成json对象的一个过程,生成的是字符串。
json.dump()是把python对象转换成json对象生成一个fp的文件流,和文件相关。

【1】json.dumps()

# -*-coding: Utf-8 -*-
# @File : dumps1 .py
# author: Chimengmeng
# blog_url : https://www.cnblogs.com/dream-ze/
# Time:2023/5/21

import json

x = {'name': 'dream', 'age': 18, 'city': 'china'}

# 用dumps将python编码成json字符串(这里json会默认在:后面加上一个空格)
print(json.dumps(x))
# {"name": "dream", "age": 18, "city": "china"}

这里就还有一个区别,注意我上面python字符串专门用的单引号,转化以后,json就用的是双引号了。

【2】json.dump()

  • 这个方法结合了文件的操作,把转换后的json储存在了文件里。

  • text.txt

{'name':'dream','age':19,'city':'China'}
  • py
# -*-coding: Utf-8 -*-
# @File : dumps1 .py
# author: Chimengmeng
# blog_url : https://www.cnblogs.com/dream-ze/
# Time:2023/5/21

import json

x = {'name': 'dream', 'age': 19, 'city': 'China'}

# 将python编码成json放在那个文件里
filename = 'text.txt'
with open(filename, 'w') as f:
    json.dump(x, f) 
  • 转换后的的文件.text.txt
{"name": "dream", "age": 19, "city": "China"}

【四】dumps的一些参数(重点)

  • 因为dumps编码以后的json格式输出比较的紧凑
    • 如果不止一行看起来就不是特别好看,就像一堆乱码似的。
    • 所以,就推出了一些可选参数来让json码的可读性更高。
json.dumps(obj, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, encoding="utf-8", default=None, sort_keys=False, **kw)

【1】obj:

  • 就是你要转化成json的对象。

【2】sort_keys =True:

  • 是告诉编码器按照字典排序(a到z)输出。
  • 如果是字典类型的python对象,就把关键字按照字典排序。

【3】indent:

  • 参数根据数据格式缩进显示,读起来更加清晰。

【4】separators:

  • 是分隔符的意思,参数意思分别为不同dict项之间的分隔符和dict项内key和value之间的分隔符
    • 把:和,后面的空格都除去了。

【5】skipkeys

  • 默认值是False,如果dict的keys内的数据不是python的基本类型(str,unicode,int,long,float,bool,None),设置为False时,就会报TypeError的错误。
  • 此时设置成True,则会跳过这类key 。

【6】ensure_ascii=True

  • 默认输出ASCLL码,如果把这个该成False,就可以输出中文。

【7】check_circular:

  • 如果check_circular为false,则跳过对容器类型的循环引用检查,循环引用将导致溢出错误(或更糟的情况)。

【8】allow_nan:

  • 如果allow_nan为假,则ValueError将序列化超出范围的浮点值(nan、inf、-inf),严格遵守JSON规范,而不是使用JavaScript等价值(nan、Infinity、-Infinity)。

【9】default:

  • default(obj)是一个函数,它应该返回一个可序列化的obj版本或引发类型错误。默认值只会引发类型错误。

标签:False,Python,dream,41.2,41,dumps,python,json,True
From: https://www.cnblogs.com/dream-ze/p/17418963.html

相关文章

  • Python 设计模式-观察者模式
    观察者模式是一种行为设计模式,它允许你定义一种订阅机制,可以在对象事件发生时通知多个观察者对象。下面是一个简单的Python观察者模式代码示例:classSubject:"""被观察者类,维护观察者列表,并在状态发生改变时通知观察者"""def__init__(self):self._......
  • 【python】使用pyinstaller打包python程序为exe【转】
    pyinstaller介绍PyInstaller除了win32平台外还支持Linux,Unix平台.py2exe的用法在前面的博文里已经有了,现在看看PyInstaller,pyinstaller是目前应用最多的python打包工具,也是我最常用的。PyInstaller本身并不是Python模块,所以安装时随便放在哪儿都行。优点:可将python文件转......
  • 5年Python生涯总结出10个玩Python必备的网站
    “玩Python必备的10大精品网站”5年Python沉淀,总结一下作为一个Python玩家,必须要知道的十大精品网站。无用请吐槽!有用请点赞!!爱我请三连!!!目录一、模块查询二、闯关游戏三、Django教程四、Python资源大全五、数据/竞赛/学习六、Python语法/项目经验七、Flask资料大全八、机器学习中文......
  • Python数据加密方法详解|为你的隐私再上一把锁!
    前言数字化时代下,数据安全是各大公司及个人最关心的一点,作为一个Python语言使用者我们该如何进行数据的加密呢?本文二哥领着大家来了解一下。目录前言一、数据加密的概念二、直接编码加密三、Binascii编码加密三、Base64编码加密四、URL编码加密五、Hashlib加密1、MD52、SHA1加密六......
  • 左程云动态规划问题学习(python版本重写)
    哔哩哔哩:6.二次优化(3)_哔哩哔哩_bilibili第一个版本对动态规划的理解#问题有大量的重复问题,比如求feibolaqie(5)=feibolaqie(4)+feibolaqie(3),#所以有重复问题,通过缓存优化,把以前求过的问题做缓存#deffeibolaqie(n):#ifn==1:#return1#eli......
  • python爬取《肖申克的救赎》电影演员
    importrequestsfrombs4importBeautifulSoup#豆瓣电影页面链接url='https://movie.douban.com/subject/1292052/'#设置请求头信息,模拟浏览器请求headers={'User-Agent':'Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,lik......
  • python-docx - 3
    1.样式1.1访问样式使用Document.styles属性访问样式。fromdocximportDocumentdocument=Document()#获取样式对象,这里面可以像字典一样访问,也可以迭代styles=document.stylesforstyleinstyles:print(style.name,"\t",style.type)#获取一个正文样式......
  • Python使用pip安装第三方包
    ​ 参考文章:如何安装第三方的Python包?-知乎​pipinstall-i网址包名称例如:pipinstall-ihttps://pypi.tuna.tsinghua.edu.cn/simple/numpy常用的网址有:清华:https://pypi.tuna.tsinghua.edu.cn/simple/阿里云:http://mirrors.aliyun.com/pypi/simple/......
  • Python安装教程
    Python安装教程https://zhuanlan.zhihu.com/p/569019068python下载https://www.python.org/downloads/windows/pycharm下载https://www.jetbrains.com/pycharm/download/#section=windows配置https://zhuanlan.zhihu.com/p/587849846?utm_id=0......
  • python 云服务器部署 flask 项目
    测试模式,非生产模式1.修改host和port 2.上传项目 3.下载python项目管理器  4.创建项目 5.开放端口,远程连接数据库......