Python json格式化打印实现过程解析


Posted in Python onJuly 21, 2020

编写python脚本,调试的时候需要打印json格式报文,直接打印看不出层次,可以使用json.dumps格式化打印

import json
import requests

def test_json():
  r=requests.get('https://home.testing-studio.com/categories.json')
  print(r.json())
  print(json.dumps(r.json(), indent=2,ensure_ascii=False)) # r.json()是json对象,indent表示缩进,ensure_ascii设置编码
格式化打印前:

格式化打印前:

Python json格式化打印实现过程解析

格式化打印后:

Python json格式化打印实现过程解析

json.dumps方法源码:

def dumps(obj, *, skipkeys=False, ensure_ascii=True, check_circular=True,
    allow_nan=True, cls=None, indent=None, separators=None,
    default=None, sort_keys=False, **kw):
  """Serialize ``obj`` to a JSON formatted ``str``.

  If ``skipkeys`` is true then ``dict`` keys that are not basic types
  (``str``, ``int``, ``float``, ``bool``, ``None``) will be skipped
  instead of raising a ``TypeError``.

  If ``ensure_ascii`` is false, then the return value can contain non-ASCII
  characters if they appear in strings contained in ``obj``. Otherwise, all
  such characters are escaped in JSON strings.

  If ``check_circular`` is false, then the circular reference check
  for container types will be skipped and a circular reference will
  result in an ``OverflowError`` (or worse).

  If ``allow_nan`` is false, then it will be a ``ValueError`` to
  serialize out of range ``float`` values (``nan``, ``inf``, ``-inf``) in
  strict compliance of the JSON specification, instead of using the
  JavaScript equivalents (``NaN``, ``Infinity``, ``-Infinity``).

  If ``indent`` is a non-negative integer, then JSON array elements and
  object members will be pretty-printed with that indent level. An indent
  level of 0 will only insert newlines. ``None`` is the most compact
  representation.

  If specified, ``separators`` should be an ``(item_separator, key_separator)``
  tuple. The default is ``(', ', ': ')`` if *indent* is ``None`` and
  ``(',', ': ')`` otherwise. To get the most compact JSON representation,
  you should specify ``(',', ':')`` to eliminate whitespace.

  ``default(obj)`` is a function that should return a serializable version
  of obj or raise TypeError. The default simply raises TypeError.

  If *sort_keys* is true (default: ``False``), then the output of
  dictionaries will be sorted by key.

  To use a custom ``JSONEncoder`` subclass (e.g. one that overrides the
  ``.default()`` method to serialize additional types), specify it with
  the ``cls`` kwarg; otherwise ``JSONEncoder`` is used.

  """
  # cached encoder
  if (not skipkeys and ensure_ascii and
    check_circular and allow_nan and
    cls is None and indent is None and separators is None and
    default is None and not sort_keys and not kw):
    return _default_encoder.encode(obj)
  if cls is None:
    cls = JSONEncoder
  return cls(
    skipkeys=skipkeys, ensure_ascii=ensure_ascii,
    check_circular=check_circular, allow_nan=allow_nan, indent=indent,
    separators=separators, default=default, sort_keys=sort_keys,
    **kw).encode(obj)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python显示天气预报
Mar 02 Python
python字符串排序方法
Aug 29 Python
Python多进程multiprocessing用法实例分析
Aug 18 Python
Python 逐行分割大txt文件的方法
Oct 10 Python
python解决字符串倒序输出的问题
Jun 25 Python
python实现列表中由数值查到索引的方法
Jun 27 Python
详解python读取image
Apr 03 Python
python实现弹窗祝福效果
Apr 07 Python
python操作openpyxl导出Excel 设置单元格格式及合并处理代码实例
Aug 27 Python
Python如何读取、写入CSV数据
Jul 28 Python
公认8个效率最高的爬虫框架
Jul 28 Python
python如何查找列表中元素的位置
May 30 Python
基于python实现删除指定文件类型
Jul 21 #Python
python打开音乐文件的实例方法
Jul 21 #Python
Python读取yaml文件的详细教程
Jul 21 #Python
Python中bisect的用法及示例详解
Jul 20 #Python
python为什么要安装到c盘
Jul 20 #Python
python如何代码集体右移
Jul 20 #Python
python接入支付宝的实例操作
Jul 20 #Python
You might like
使用字符串函数输出整数化的PHP版本号
2006/10/09 PHP
php的日期处理函数及uchome的function_coomon中日期处理函数的研究
2011/01/12 PHP
php下载文件的代码示例
2012/06/29 PHP
PHP session文件独占锁引起阻塞问题解决方法
2015/05/12 PHP
PHP 开发者该知道的 5 个 Composer 小技巧
2016/02/03 PHP
php抛出异常与捕捉特定类型的异常详解
2016/10/26 PHP
一页面多XMLHttpRequest对象
2007/01/22 Javascript
jQuery 学习6 操纵元素显示效果的函数
2010/02/07 Javascript
JS自定义功能函数实现动态添加网址参数修改网址参数值
2013/08/02 Javascript
js特殊字符过滤的示例代码
2014/03/05 Javascript
使用jQuery重置(reset)表单的方法
2014/05/05 Javascript
js判断游览器类型及版本号的代码
2014/05/11 Javascript
JavaScript中window.showModalDialog()用法详解
2014/12/18 Javascript
JavaScript实现鼠标点击后层展开效果的方法
2015/05/13 Javascript
在JavaScript中处理时间之getHours()方法的使用
2015/06/10 Javascript
jquery悬浮提示框完整实例
2016/01/13 Javascript
JS获取鼠标相对位置的方法
2016/09/20 Javascript
Angular2 (RC5) 路由与导航详解
2016/09/21 Javascript
js 实现一些跨浏览器的事件方法详解及实例
2016/10/27 Javascript
HTML5 JS压缩图片并获取图片BASE64编码上传
2020/11/16 Javascript
Vue打包后出现一些map文件的解决方法
2018/02/13 Javascript
从零开始用electron手撸一个截屏工具的示例代码
2018/10/10 Javascript
详解Vue This$Store总结
2018/12/17 Javascript
PostgreSQL Node.js实现函数计算方法示例
2019/02/12 Javascript
谈谈我在vue-cli3中用预渲染遇到的坑
2020/04/22 Javascript
jQuery+ThinkPHP实现图片上传
2020/07/23 jQuery
Python正则获取、过滤或者替换HTML标签的方法
2016/01/28 Python
python 回调函数和回调方法的实现分析
2016/03/23 Python
如何用python写一个简单的词法分析器
2018/12/18 Python
基于torch.where和布尔索引的速度比较
2020/01/02 Python
将tensorflow模型打包成PB文件及PB文件读取方式
2020/01/23 Python
美国LOGO设计公司:The Logo Company
2018/07/16 全球购物
幼儿园元旦主持词
2015/07/06 职场文书
党员理论学习心得体会
2016/01/21 职场文书
python 解决微分方程的操作(数值解法)
2021/05/26 Python
Python采集壁纸并实现炫轮播
2022/04/30 Python