IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Python-json模块 -> 正文阅读

[Python知识库]Python-json模块

json模块的定义

Json**是一种轻量级的数据交换格式**。Json源自JavaScript语言,易于人类的阅读和编写,同时也易于机器解析和生成,是目前应用最广泛的数据交换格式。

#{}是一个对象  []数组
{
    "大数据1班":[{"张三":15,"李四":18,"赵六":20}],
    "大数据2班":[{"张三":15,"李四":18,"赵六":20}],
    "大数据3班":[{"张三":15,"李四":18,"赵六":20}],
    "大数据4班":[{"张三":15,"李四":18,"赵六":20}],
    "大数据5班":[{"张三":15,"李四":18,"赵六":20}],
    "大数据6班":[{"张三":15,"李四":18,"赵六":20}],
    "大数据7班":[{"张三":15,"李四":18,"赵六":20}],
    "大数据8班":[{"张三":15,"李四":18,"赵六":20}],
    "大数据9班":[{"张三":15,"李四":18,"赵六":20}],
    "大数据10班":[{"张三":15,"李四":18,"赵六":20}],

}

Python内置类型转换json类型对招表

PythonJSON
dictobject
list,tuplearray
strstring
int,float,Enumsnumber
Truetrue
Falsefalse
Nonenull

json类型转换Python类型对照表

JSONPython
objectdict
arraylist
stringstr
number (int)int
number (real)float
trueTrue
falseFalse
nullNone

常用方法

方法功能
json.dump(obj,fp)将python数据类型转换并保存到json格式的文件内
json.dumps(obj)将python数据类型转换为json格式的字符串
json.load(fp)从json格式的文件中读取数据并转换为python的类型
json.loads(s)将json格式的字符串转换为python的类型

dumps()与loads()

参数:

"""
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)
sort_keys =True:是告诉编码器按照字典排序(a到z)输出。如果是字典类型的python对象,就把关键字按照字典排序。
indent:参数根据数据格式缩进显示,读起来更加清晰。一般写2和4
separators:是分隔符的意思,参数意思分别为不同dict项之间的分隔符和dict项内key和value之间的分隔符,
skipkeys:默认值是False,如果dict的keys内的数据不是python的基本类型(str,unicode,int,long,float,bool,None),设置为False时,就会报TypeError的错误。此时设置成True,则会跳过这类key
ensure_ascii=True:默认输出ASCLL码,如果把这个该成False,就可以输出中文。

check_circular:如果check_circular为false,则跳过对容器类型的循环引用检查,循环引用将导致溢出错误(或更糟的情况)。
allow_nan:如果allow_nan为假,则ValueError将序列化超出范围的浮点值(nan、inf、-inf),严格遵守JSON规范,而不是使用JavaScript等价值(nan、Infinity、-Infinity)。
default:default(obj)是一个函数,它应该返回一个可序列化的obj版本或引发类型错误。默认值只会引发类型错误。
"""


"""
dumps(python数据) 把python数据转换成json数据
loads(json) 把json数据转换成python数据
"""
import json

print(json.dumps(['foo', {'bar': ('baz', None, 1.0, 2)}])) # 输出结果:["foo", {"bar": ["baz", null, 1.0, 2]}]
print(json.dumps("\"foo\bar")) # 输出结果:"\"foo\bar" 里面相当于是一个整体
print(json.dumps('\u1234')) # 输出结果:"\u1234"
print(json.dumps('\\')) ?# 输出结果:"\\"

#如果sort_keys是False,则随机打印结果,如果sortkeys为true,则按顺序打印
print(json.dumps({"c": 0, "b": 0, "a": 0}, sort_keys=True)) # 输出结果:{"a": 0, "b": 0, "c": 0}

"""
这里indent是缩进的意思一般写为4 或者2
separators 是( ‘元素之间用逗号隔开’ , ‘key和内容之间’ 用冒号隔开)
这里是 ‘逗号’ , ‘冒号’ 中间的逗号不带引号
"""
print(json.dumps([1, 2, 3, {'4': 5, '6': 7}], separators=(',', ':')))
# 输出结果:[1,2,3,{"4":5,"6":7}]
print(json.dumps({'4': 5, '6': 7}, sort_keys=True, indent=4))


"""
这里indent是缩进的意思一般写为4 或者2
separators 是( ‘元素之间用逗号隔开’ , ‘key和内容之间’ 用冒号隔开)
这里是 ‘逗号’ , ‘冒号’ 中间的逗号不带引号
"""
a = json.dumps([1, 2, 3, {'4': 5, '6': 7}], separators=(',', ':')) # 输出结果:[1,2,3,{"4":5,"6":7}]
print (json.loads(a))

#\b就有特殊的意义,单词边界,本身没有什么意思
b = json.dumps("\"foo\bar")
print (json.loads(b)) #"foar ?

dump()与load()

"""
dump(python,文件对象) 把python转换成json格式并保存到文件中
load(文件对象) 把json格式的文件读取转换成python
"""
import json

data = {
    "大数据1班":[{"张三":15,"李四":18,"赵六":20}],
    "大数据2班":[{"张三":15,"李四":18,"赵六":20}],
    "大数据3班":[{"张三":15,"李四":18,"赵六":20}],
    "大数据4班":[{"张三":15,"李四":18,"赵六":20}],
    "大数据5班":[{"张三":15,"李四":18,"赵六":20}],
    "大数据6班":[{"张三":15,"李四":18,"赵六":20}],
    "大数据7班":[{"张三":15,"李四":18,"赵六":20}],
    "大数据8班":[{"张三":15,"李四":18,"赵六":20}],
    "大数据9班":[{"张三":15,"李四":18,"赵六":20}],
    "大数据10班":[{"张三":15,"李四":18,"赵六":20}],

}
with open("f.txt","w") as f:
    a = json.dump(data,f)
    #print(a) #没有返回值,但是数据已经写进去了r

with open("f.txt","r") as f:
    a = json.load(f)
    print(a)
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-12-03 12:59:47  更:2021-12-03 13:01:54 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 2:16:57-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码