Python常用模块--json
官方解释:
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。人类很容易读写。机器很容易解析和生成。它基于 JavaScript编程语言的一部分, 标准ECMA-262第3版 - 1999年12月。JSON是一种完全独立于语言的文本格式,但使用C语言系列程序员熟悉的约定,包括C,C ++,C#,Java,JavaScript,Perl,Python等等。这些属性使JSON成为理想的数据交换语言。
JSON基于两种结构:
- 名称/值对的集合。在各种语言中,这被实现为对象,记录,结构,字典,散列表,键控列表或关联数组。
- 有序的值列表。在大多数语言中,这被实现为数组,向量,列表或序列。
这些是通用数据结构。实际上,所有现代编程语言都以某种形式支持它们。有意义的是,可与编程语言互换的数据格式也基于这些结构。
Python 中的json模块,官方介绍:https://docs.python.org/3.7/library/json.html
在python中,有专门处理json格式的模块—— json 和 picle模块
Json 模块提供了四个方法: dumps、dump、loads、load
+-------------------+---------------+
| Python | JSON |
+===================+===============+
| dict | object |
+-------------------+---------------+
| list, tuple | array |
+-------------------+---------------+
| str | string |
+-------------------+---------------+
| int, float | number |
+-------------------+---------------+
| True | true |
+-------------------+---------------+
| False | false |
+-------------------+---------------+
| None | null |
+-------------------+---------------+
1.将Python对象转换为json格式:
dump(obj, fp, *, skipkeys=False, ensure_ascii=True, check_circular=True,allow_nan=True, cls=None, indent=None, separators=None,
default=None, sort_keys=False, **kw):
# 将生成的json串,直接存入指定的文件中,没有返回值
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):
# 将生成的json串返回 其他参数说明:
skipkeys:默认False,如果传入的obj是字典类型,且字典的key类型不在(``str``, ``int``, ``float``, ``bool``, ``None``)中,会报格式错误,如有,则设为Ture;
ensure_ascii:默认True,设为False时,中文显示正常;
check_circular:默认Ture,设为False时,会跳过循环引用检查,如果循环引用出错会导致溢出错误;
sort_keys:默认False,设为True时,生成的json按照key值进行排序
上代码:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
__author__ = "问道编程"
__date__ = "2019/03/18 17:50" import json print('---------------\n字符串转换:')
a = "\"foo\bar"
result = json.dumps(a) # 返回生成的json串
print('a = ', a)
print('result:', result) # 可以发现 result 和 a 在显示上一样 但是打印结果不同 说明不是一样的
print('类型:', type(result))
print('---------------\n将转换后的json写入文件:')
myfile = open('a.json', 'w')
a = [1, 2, 3, {'4': 5, '6': 7}]
json.dump(a, myfile, indent=4) # 没有返回值
myfile.close()
2.将json转换为Python对象:
load(fp, *, cls=None, object_hook=None, parse_float=None,parse_int=None, parse_constant=None, object_pairs_hook=None, **kw):
# 从文件中读取json串,转换为Python对象返回
loads(s, *, encoding=None, cls=None, object_hook=None, parse_float=None,parse_int=None, parse_constant=None, object_pairs_hook=None, **kw):
# 将json串直接转换为Python对象
上代码:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
__author__ = "问道编程"
__date__ = "2019/03/18 17:50" import json print('---------------\n转换为列表:')
json_str = '["foo", {"bar":["baz", null, 1.0, 2]}]'
result = json.loads(json_str) # 将json串转换为Python对象
print('json_str = ', json_str)
print('result:', result)
print('json_str类型:', type(json_str))
print('result类型:', type(result))
print('---------------\n从文件中解码json:')
myfile = open('a.json', 'r')
result = json.load(myfile)
print('result:', result)
print('result类型:', type(result))
Python常用模块--json的更多相关文章
- python常用模块json
python jons模块 json模块 主要是解决数据格式的转换问题,比如python接收到json对象需要转换为python对象,供python处理,亦或者python数据需要发送到其给其他客户端 ...
- Python常用模块——json & pickle
序列化模块 1.什么是序列化-------将原本的字典,列表等对象转换成一个字符串的过程就叫做序列化 2.序列化的目的 1.以某种存储形式使自定义对象持久化 2.将对象从一个地方传递到另一个地方 3. ...
- python常用模块json、os、sys
一.序列化 json & pickle 模块 json--用于字符串和Python数据类型间进行转换 pickle---用于python特有的类型和Python的数据类型间进行转换 json: ...
- Python常用模块——目录
Python常用模块学习 Python模块和包 Python常用模块time & datetime &random 模块 Python常用模块os & sys & sh ...
- python常用模块集合
python常用模块集合 Python自定义模块 python collections模块/系列 Python 常用模块-json/pickle序列化/反序列化 python 常用模块os系统接口 p ...
- python常用模块之json、pickle模块
python常用模块之json.pickle模块 什么是序列化? 序列化就是把内存里的数据类型转换成字符,以便其能存储到硬盘或者通过网络进行传输,因为硬盘或网络传输时只接受bytes. 为什么要序列化 ...
- python 常用模块 time random os模块 sys模块 json & pickle shelve模块 xml模块 configparser hashlib subprocess logging re正则
python 常用模块 time random os模块 sys模块 json & pickle shelve模块 xml模块 configparser hashlib subprocess ...
- (转)python常用模块(模块和包的解释,time模块,sys模块,random模块,os模块,json和pickle序列化模块)
阅读目录 1.1.1导入模块 1.1.2__name__ 1.1模块 什么是模块: 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代 ...
- python——常用模块2
python--常用模块2 1 logging模块 1.1 函数式简单配置 import logging logging.debug("debug message") loggin ...
随机推荐
- mysql 案例~ mysql故障恢复
一 :遇到一个朋友的案例 分享下处理流程 二 : 现象 1 mysql无法启动,观察日志发现 InnoDB: Failing assertion: !m_fatal InnoDB: We intent ...
- Android中的Service:Binder,Messenger,AIDL
http://blog.csdn.net/luoyanglizi/article/details/51594016 http://blog.csdn.net/luoyanglizi/article/d ...
- Udacity并行计算课程 CS344 编程作业答案
Problem set 1 // Homework 1 // Color to Greyscale Conversion //A common way to represent color image ...
- 【黑客免杀攻防】读书笔记2 - 免杀与特征码、其他免杀技术、PE进阶介绍
第3章 免杀与特征码 这一章主要讲了一些操作过程.介绍了MyCCL脚本木马免杀的操作,对于定位特征码在FreeBuf也曾发表过类似工具. VirTest5.0特征码定位器 http://www.fre ...
- 【Python】Python-基础语法学习
基础语法学习 果然学完 C++ 后再看其他语言的确有很多的共性,只需要熟悉一下python的独特语法和 C++ 中的差异就可以写出一些小的程序,而写得过程中也再次体会出python代码的精简和灵活: ...
- Windows CreateFont:创建自己的字体
原文地址:http://blog.csdn.net/softn/article/details/51718347 前面无论是使用文本输出函数还是 static 控件,字体都是默认的,比较丑陋,我们完全 ...
- softlab对接Jenkins工程
在Softlab上对接jenkins工程,必须先在自己的jenkins环境上配置好任务. 1.登陆到jenkins首页,比如http://10.179.175.53:8080/jenkins/ 2.点 ...
- 026_关于shell中的特殊变量$0 $n $* $@ $! $?
一. $n:获取当前执行的shell脚本的第N个参数,n=1..9,当n为0时表示脚本的文件名,如果n大于9,用大括号括起来like${10}. $*:获取当前shell的所有参数,将所有的命令行参数 ...
- centos6 -> zabbix2.2升级3.0.5教程
当然系统版本centos6 清除之前的zabbix的yum源缓存 yum clean all 更换新版本的zabbix的yum源 rpm -qa|grep zabbix rpm -e zabbix-r ...
- 配置_DruidDataSource参考配置
配置_DruidDataSource参考配置 <!-- 数据库驱动 --> <property name="driverClassName" value=&quo ...