1,json是什么?

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于人阅读和编写。

我的理解就是:json是一种统一的格式化的文件,比如,一个json里放着n行,每行是一个字典,字典里存放着字段。

2,json.dumps

作用:用于将 Python 对象编码成 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)    #括号中是其内部自定义的参数和参数的默认值

基本用法:

import json

data=[{'a':1,'b':2,'c':3}]
json=json.dumps(data) #encode the data
print json,type(json) #结果是[{"a": 1, "c": 3, "b": 2}] <type 'str'> #很神奇,结果是字符串格式的

带参数用法:

import json

data=[{'a':1,'b':2,'c':3,'d':4}]
jsondata=json.dumps(data,sort_keys=True,indent=5,separators=(',',':'))
print jsondata,type(jsondata)

sort_keys:编码成json的时候,是否按照键来排序。

indent:输出的时候每行数据缩进5个空格

separators:指定键值对的分隔符是逗号,键和值的分隔符是冒号

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

ensure_ascii:默认值True,如果dict内含有non-ASCII的字符,则会类似\uXXXX的显示数据,设置成False后,就能正常显示

encoding:默认是UTF-8,设置json数据的编码方式。

sort_keys:将数据根据keys的值进行排序。

python转json数据类型:

3 json.loads

作用:json.loads 用于解码 JSON 数据。该函数返回 Python 字段的数据类型。

语法:json.loads(s[, encoding[, cls[, object_hook[, parse_float[, parse_int[, parse_constant[, object_pairs_hook[, **kw]]]]]]]])

简单实例:(接上文实验)

#jsondata等于[{"a":1,"b":2,"c":3,"d":4,"e":"5"}],是用dumps转化而来

pythondata=json.loads(jsondata)
print pythondata,type(pythondata) #结果是:[{u'a': 1, u'c': 3, u'b': 2, u'e': u'5', u'd': 4}] <type 'list'>

json转python数据类型:

4,实例

  1. json.dumps()函数是将一个Python数据类变成json格式的编码
  2. json.loads()函数是将json格式数据转换为想要的python格式
import json
def store(data):
with open('data.json', 'w') as fw:
#将字典转化为字符串
json_str = json.dumps(data) #python变成json
fw.write(json_str) #写到文件中
#上面两句等同于下面这句
# json.dump(data,fw) #区分dump和dumps def load():
with open('data.json','r') as f: #文件源
data = json.load(f) #json变成python
return data if __name__ == "__main__":
json_data = '{"login":[{"username":"aa","password":"001"},{"username":"bb","password":"002"}],"register":[{"username":"cc","password":"003"},{"username":"dd","password":"004"}]}'
# 函数是将json格式数据转换为字典
data = json.loads(json_data)
store(data) #调用第一个函数,把python编程变成json data = load() #调用第二函数:把刚刚成了的json的再变回python
print(data)

python编程 之 json包的更多相关文章

  1. 解析Python编程中的包结构

    解析Python编程中的包结构 假设你想设计一个模块集(也就是一个"包")来统一处理声音文件和声音数据.通常由它们的扩展有不同的声音格式,例如:WAV,AIFF,AU),所以你可能 ...

  2. Python编程-模块和包

    一.模块 1.什么是模块? 一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 2.为何要使用模块? 如果你退出python解释器然后重新进入,那么你之前定义的函 ...

  3. python编程 之 PyMysql包接口,python中如何使用数据库

    1,环境介绍 要求:使用数据库TESTDB.EMPLOYMENT EMPLOYEE表字段为 FIRST_NAME, LAST_NAME, AGE, SEX 和 INCOME. 2,基本用法: impo ...

  4. python/socket编程之粘包

    python/socket编程之粘包 粘包 只有TCP有粘包现象,UDP永远不会粘包. 首先需要掌握一个socket收发消息的原理 发送端可以是1k,1k的发送数据而接受端的应用程序可以2k,2k的提 ...

  5. Python 编程快速上手 第十四章 处理 CSV 文件和 JSON 数据

    前言 这一章分为两个部分,处理 CSV 格式的数据和处理 JSON 格式个数据. 处理 CSV 理解 csv csv 的每一行代表了电子表格中的每一行,每个逗号分开两个单元格csv 的内容全部为文本, ...

  6. Python之路 - 网络编程之粘包

    Python之路 - 网络编程之粘包 粘包

  7. 书籍推荐Python编程:从入门到实践(高清完整pdf)

    这本书我看了电子版的,感觉还不错,全书共有20章,书中的简介如下: 本书旨在让你尽快学会 Python ,以便能够编写能正确运行的程序 -- 游戏.数据可视化和 Web 应用程序,同时掌握让你终身受益 ...

  8. Python编程:从入门到项目实践高清版附PDF百度网盘免费下载|Python入门编程免费领取

    百度网盘:Python编程:从入门到项目实践高清版附PDF免费下载 提取码:oh2g   第一部分 基础知识第1章 起步 21.1 搭建编程环境 21.1.1 Python 2和Python 3 21 ...

  9. python入门神书!|python编程从入门到实践|内附网盘链接带提取码|

    点击此处进入网盘下载地址 提取码:o39n 全书共有20章,书中的简介如下: 本书旨在让你尽快学会 Python ,以便能够编写能正确运行的程序 —— 游戏.数据可视化和 Web 应用程序,同时掌握让 ...

随机推荐

  1. mysql 5.7 启动脚本

    最近这段时间,在看mysql,安装了,也应用过,对于生产环境中,一般都选择使用source code安装,在安装的时候可以自定义相关路径和内容,对于生产环境来说更有效.相对于mysql 5.5的安装, ...

  2. 解决docker多开mysql报错问题

    1.vim /etc/sysctl.conf fs.aio-max-nr=262144 重新加载 sysctl -p /etc/sysctl.conf

  3. 如何打开.lxe文件

    介绍两款播放器: 第一款:PotPlayer,这款软件快进看学习视频特特别方便. 软件的下载地址:链接:http://potplayer.daum.net/?lang=zh_CN 第二款:屏幕录像专家 ...

  4. mybatis mapper配置

    <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC ...

  5. 图论分支-倍增Tarjan求LCA

    LCA,最近公共祖先,这是树上最常用的算法之一,因为它可以求距离,也可以求路径等等 LCA有两种写法,一种是倍增思想,另一种是Tarjan求法,我们可以通过一道题来看一看, 题目描述 欢乐岛上有个非常 ...

  6. kubernetes yaml格式的Pod配置文件

    kubernetes yaml文件解析 # yaml格式的pod定义文件完整内容: apiVersion: v1 #必选,版本号,例如v1 kind: Pod #必选,Pod metadata: #必 ...

  7. CentOS7 图形化方式安装 Oracle 18c 单实例

    下载 Oracle 数据库,zip 包 https://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.h ...

  8. JAVA核心技术I---JAVA基础知识(package和import)

    一:package 所有的Java类都是放置在同一个目录下面的,因此类之间的相互调用无需显式声明调用. –同一个目录下,两个类的名字不能相同 –文件过多,查找和修改都不易,且容易出 Java支持多个目 ...

  9. C#多线程和异步(二)——Task和async/await详解

    一.什么是异步 同步和异步主要用于修饰方法.当一个方法被调用时,调用者需要等待该方法执行完毕并返回才能继续执行,我们称这个方法是同步方法:当一个方法被调用时立即返回,并获取一个线程执行该方法内部的业务 ...

  10. angular,vue,react的基本语法—插值表达式,渲染数据,响应式数据

    基本语法: 1.插值表达式: vue:{{}} react:{} angular:{{}} 2.渲染数据 vue js: export default{ data(){ return{ msg:&qu ...