1.Json 定义

  • 定义:JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。JSON 的数据格式其实就是 python 里面的字典格式,里面可以包含方括号括起来的数组,也就是python里面的列表。
  • 特点:简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
  • 在 JS 语言中,一切都是对象。因此,任何支持的类型都可以通过 JSON 来表示,例如字符串、数字、对象、数组等。但是对象和数组是比较特殊且常用的两种类型:
    • 对象表示为键值对  
    • 数据由逗号分隔  
    • 花括号保存对象
    • 方括号保存数组  
  • 序列化简单定义:变成 json 格式。定义:变成json格式。
  • 反序列化简单定义: json 格式变其它
"""
字典格式与json格式对比
"""
# 字典格式:
d = {
'a': 123,
'b': {
'x': ['A', 'B', 'C']
}
} # json格式
{
"a": 123,
"b": { #必须是双引号(因为java等其它语言有使用双引号表示字符串,单引号不表示字符串)
"x": ["A", "B", "C"]
}
}
  • 在 python 中,有专门处理 Json 格式的模块  ——>  json 和 picle模块
  • Json 模块提供了四个方法: dumps、dump、loads、load
  • pickle 模块也提供了四个功能:dumps、dump、loads、load

2.json.dumps() 序列化

  • 将 python 的值转换为 Json 格式的字符串。 
import json

res = {
"userAccount":"admin",
"loginPwd":""
} print(type(res))
du_res = json.dumps(res)
# print(du_res)
print(type(du_res)) #结果如下
<class 'dict'>
<class 'str'>
#json序列化过程中的中文显示
import json res = {
"userAccount":"管理员",
"loginPwd":""
} du_res = json.dumps(res)
print(du_res) #结果如下
{"userAccount": "\u7ba1\u7406\u5458", "loginPwd": ""} #转码
import json res = {
"userAccount":"管理员",
"loginPwd":""
} du_res = json.dumps(res,ensure_ascii=False)
print(du_res) #结果如下
{"userAccount": "管理员", "loginPwd": ""}

3.json.loads() 反序列化

  • 将 json 格式的字符串转换成 python 的数据类型  
import json

res = {
"userAccount":"管理员",
"loginPwd":""
} du_res = json.dumps(res,ensure_ascii=False)
print(type(du_res)) #将 json 格式的字符串转换成 python 的数据类型 dict
lo_res = json.loads(du_res)
print(type(lo_res)) #结果如下
<class 'str'>
<class 'dict'>

4.json.dump() 序列化

#dump将内容序列化,并写入打开的文件中。

import json

v = {'k1':'yh','k2':'小马过河'}
f = open('xiaoma.txt',mode='w',encoding='utf-8') #文件不存在就会生成
val = json.dump(v,f)
print(val)
f.close() #结果如下
None

5.json.load() 反序列化

import json

f = open('xiaoma.txt',mode='r',encoding='utf-8')
data = json.load(f)
f.close()
print(data,type(data)) #结果如下
{'k1': 'yh', 'k2': '小马过河'} <class 'dict'>

python(json 模块)的更多相关文章

  1. python json模块(15)

    JSON 的全称是 JavaScript Object Notation,即 JavaScript 对象符号,它是一种轻量级.跨平台.跨语言的数据交换格式,其设计意图是把所有事情都用设计的字符串来表示 ...

  2. Python—json模块

    用于序列化的两个模块 json,用于字符串 和 python数据类型间进行转换 pickle,用于python特有的类型 和 python的数据类型间进行转换 Json模块提供了四个功能:dumps. ...

  3. Python: json模块实例详解

    ref:https://www.jianshu.com/p/e29611244810 https://www.cnblogs.com/qq78292959/p/3467937.html https:/ ...

  4. python json模块使用详情

    python其他知识目录 #json.数据交换用到json文件.json是特殊的字符串.访问网站,返回的就是json 1.json简介: 定义:JSON(JavaScript Object Notat ...

  5. python json模块 超级详解

    JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式.JSON的数据格式其实就是python里面的字典格式,里面可以包含方括号括起来的数组,也 ...

  6. python: json模块 --JSON编码和解码

    json 源代码: Lib/json/__init__.py json.dump() import json numbers = [1, 2, 3, 4] with open('linshi.py', ...

  7. python json模块小技巧

    python的json模块通常用于与序列化数据,如 def get_user_info(user_id): res = {"user_id": 190013234,"ni ...

  8. python --- json模块和pickle模块详解

    json:JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式(用于数据序列化和反序列化).(适用于多种编程语言,可以与其他编程语言做数据交换 ...

  9. python json 模块

    什么是json? json是返回的是字符串格式,把python数据类型列表.字典转换成json字符串格式, 这种格式java php 其他语言都可以认识的字符串,可以跨语言交流. json,用于字符串 ...

  10. Python json模块dumps loads

    python中json数据的使用. dumps和loads也是需要成对使用的,就像c++ new/delete malloc/free一样需要成对使用. 看着像json的字符串,也不一定是json字符 ...

随机推荐

  1. MySQL学习之路7-索引、事务、函数、存储过程、游标

    索引 使用索引快速定位某列中特定值的行,不需要遍历数据表所有行. 创建索引的数据结构:BTREE and HASH. 主键也是一种索引,Primary key. show index from ord ...

  2. Java 方法之形参和实参 、堆、栈、基本数据类型、引用数据类型

    * 形式参数:用于接收实际参数的变量(形式参数一般就在方法的声明上) * 实际参数:实际参与运算的变量 * 方法的参数如果是基本数据类型:形式参数的改变不影响实际参数. * * 基本数据类型:byte ...

  3. Django 表单处理流程

    Django 的表单处理:视图获取请求,执行所需的任何操作,包括从模型中读取数据,然后生成并返回HTML页面(从模板中),我们传递一个包含要显示的数据的上下文.使事情变得更复杂的是,服务器还需要能够处 ...

  4. public、private、protected继承区别

  5. Mysqldump参数大全 这 些参数 不同于 mysql 的那些参数(下边文章开头有链接) :2 种类型的参数含义是不一样的

    Mysqldump参数大全  这 些参数 不同于 mysql 的那些参数  :2 种类型的参数含义是不一样的 Mysqldump参数大全(参数来源于mysql5.5.19源码) 参数 参数说明 --a ...

  6. AJ学IOS(23)UI之控制器管理

    AJ分享,必须精品 控制器以及view的多种创建方式 控制器view的加载 通过storyboard创建 1:先加载storyboard⽂件(Test是storyboard的⽂文件名) UIStory ...

  7. echarts多个数据添加多个纵坐标

    在我们echarts开发中,肯定会遇到一个问题.那就是当有多个数据且数据大小差距太大时,就会出现有些数据小到看不到的情况.所以在遇到这种情况时,我通常的解决办法就是给他多加一个坐标轴. option  ...

  8. I - Harmonic Number LightOJ - 1234 (分段打表+暴力)

    题目给的时间限制是3s,所以可以直接暴力来做,注意n的取值范围是1e8,如果开一个1e8的数组会RE.分段打表,可以每100个数记录一次,然后对每次询问先找到它所在的区间,然后在暴力往后找.(学到了~ ...

  9. Project configuration is not up-to-date with pom.xml.错误

    完整错误信息:Description Resource Path Location TypeProject configuration is not up-to-date with pom.xml. ...

  10. 百度关键词搜索工具 v1.1|url采集工具 v1.1

    功能介绍:关键词搜索工具 批量关键词自动搜索采集 自动去除垃圾二级泛解析域名 可设置是否保存域名或者url 持续更新中