一、json是什么

客户端向服务器端发送请求后,服务器端怎么才能把用户需要的数据返回给客户端呢。这时我们就需要用一个指定的格式将数据,按照指定格式返回客户端。这时就有了两种数据传输的方式(XML和Json)

常用的是Json,因为在普通的Web应用中,不管是服务器端还是客户端解析XML代码会非常麻烦,所以这时Json就更加满足数据传输解析的要求。采用Json格式的方式进行数据的传输,不仅方便传输解析,还特别易于人阅读和编写。

打个形象的比方,后端好比是厨师,厨师做好菜,盛到盘子(json)中,交给顾客(前段)。盘子在这个过程中起到了一个交换的容器的作用。

导入:

importjsonprint(json.__all__)

主要方法:

['dump', 'dumps', 'load', 'loads', 'JSONDecoder', 'JSONEncoder']

二.XML与Json转换:

1.常规转换:

fxhl

深圳

23

转换为Json为:

{“name”:“fxhl”,"city":"深圳","age":23}

三、json和python中字典的区别和联系

刚开始学习json时感觉和python中的字典很像,两者还是有不小的区别的。

字典:{‘username’:‘wmh’,‘score’:[10,20,30],'a':999}

可以增删改查,单双都可以,是一种数据类型,有内置方法。

json:{"studentInfo":

{"id":123456,"stu_name":"Dorra"}

}

必须使用双引号或值得边界符号,不能使用单引号是一种数据格式,较少的操作方式,多用于数据传输和存储。

它们的共同点:都是key和values形式

四、python中json序列化和反序列化

在python中,序列化可以理解为:把python的对象编码转换为json格式的字符串,

反序列化可以理解为:把json格式字符串解码为python数据对象。在python的标准库中,专门提供了json库与pickle库来处理这部分。

json的dumps方法和loads方法,可实现数据的序列化和反序列化。具体来说, dumps方法,可将json格式数据序列为Python的相关的数据类型; loads方法则是相反,把python数据类型转换为json相应的数据类型格式要求。在序列化时,中文汉字总是被转换为unicode码,在dumps函数中添加参数ensure_ascii=False即可解决。

序列化

1 #coding: utf-8

2 importjson3

4 dict = {'name':'wmh', 'age':18, 'hobby':'听音乐'}5 print('未序列化前的数据类型为:', type(dict))6 print('为序列化前的数据:', dict)7 #对dict进行序列化的处理

8 dict_xu = json.dumps(dict,ensure_ascii=False) #添加ensure_ascii=False进行序列化

9 print('序列化后的数据类型为:', type(dict_xu))10 print('序列化后的数据为:', dict_xu)11 -------------------------------------------------------------------

12 未序列化前的数据类型为:

13 为序列化前的数据: {'hobby': '听音乐', 'age': 18, 'name': 'wmh'}14 序列化后的数据类型为:

15 序列化后的数据为: {"hobby": "听音乐", "age": 18, "name": "wmh"}

反序列化

importjson

dict1={'name':'雷子','age':24,'address':'北京'}print (u'未序列化前的数据类型为:',type(dict1))print (u'未序列化前的数据:',dict1)#对dict1进行序列化的处理

str1=json.dumps(dict1)print (u'序列化后的数据类型为:',type(str1))print (u'序列化后的数据为:',str1)#对str1进行反序列化

dict2=json.loads(str1)print (u'反序列化后的数据类型:',type(dict2))print (u'反序列化后的数据:',dict2)

输出:

未序列化前的数据类型为:

未序列化前的数据: {'age': 24, 'name': '雷子', 'address': '北京'}

序列化后的数据类型为:

序列化后的数据为: {"age": 24, "name": "\u96f7\u5b50", "address": "\u5317\u4eac"}

反序列化后的数据类型:

反序列化后的数据:{'age': 24, 'name': '雷子', 'address': '北京'}

结合requests库,来看返回的json数据,具体代码为:

python json是什么_python的json用法相关推荐

  1. python序列化和反序列化_Python 中 json 数据序列化和反序列化

    1.Json 定义 定义:JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式.JSON 的数据格式其实就是 python 里面的字典格式,里 ...

  2. python json数组解析_Python读取JSON数据操作实例解析

    问题 你想读写 JSON(JavaScript Object Notation) 编码格式的数据. 解决方案 json模块提供给了一种很简单的方式来编码和解码json数据,其中两个主要的函数时json ...

  3. python json文件操作_python对json的操作总结

    引言 你一定听说过 JSON 吧.JSON 是当前最常用的数据传输格式之一,纯文本,容易使用,方便阅读,最重要的是在多个场合都被大量被使用. 既然 JSON 这么好,那就让我们继续探险,去掌握 pyt ...

  4. python json是什么_Python解析Json数据

    一.什么是Json? 首先解释一下,什么是json?JSON:JavaScript 对象表示法(JavaScript Object Notation). JSON 是存储和交换文本信息的语法.类似 X ...

  5. python的json格式输出_python中json格式数据输出实现方式

    python中json格式数据输出实现方式 主要使用json模块,直接导入import json即可. 小例子如下: #coding=UTF-8 import json info={} info[&q ...

  6. python json 不好用_Python之json使用

    一.概念 json是一种通用的数据类型,任何语言都认识 接口返回的数据类型都是json 长得像字典,形式也是k-v { } 其实json是字符串 字符串不能用key.value来取值,要先转成字典才可 ...

  7. python post json 解析失败_python中json对象转换出错解决方法

    今天在使用python中的json转换碰到一个问题: 接收一个post的json字符串: s={"username":"admin","passwor ...

  8. json string 格式_python中json函数的用法

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于人阅读和编写. json函数 使用 JSON 函数需要导入 json 库:import json. 函 ...

  9. python decimal类型转化_python的json模块,针对decimal类型直接dumps报错

    主要涉及的代码 def _iterencode(o, _current_indent_level): if isinstance(o, basestring): yield _encoder(o) e ...

最新文章

  1. 区块链以及区块链技术总结
  2. 经典C语言程序100例之七零
  3. 5年,14款近满分神作,这个独立团队打造了他们的游戏宇宙
  4. 监听列表事件的监控核心技术(编写代码)
  5. 斯坦福的著名小兔子模型的点云数据_传统方法的点云分割以及PCL中分割模块
  6. go test 如何输出到控制台_GO笔记之GO命令快速体验
  7. Kubernetes入门指南
  8. 独家总结| 一文读懂卡尔曼滤波
  9. MySql多对多关系中外键的应用
  10. 【D3.V3.js系列教程】--(十五)SVG基本图形绘制
  11. OneNote | 代码高亮插件 NoteHightlight 安装教程(全面)
  12. 为知笔记的markdown图片处理
  13. DNF——一开游戏,TP刚读完条就蓝屏(终止代码:KMODE_EXCEPTION_NOT_HANDLED)的解决方法
  14. Linux man命令的使用方法 man page 显示数字的意思
  15. 执行 this.$destroy()后原生DOM事件也无法执行
  16. 神策数据:2021 证券业数字新基建趋势洞察
  17. 哪款蓝牙耳机音质好又耐用?便宜耐用的蓝牙耳机
  18. IOTA--最便捷的网络流量分析工具
  19. C程序设计 谭浩强 第十章
  20. 路由器 静态、动态路由的配置

热门文章

  1. 第一阶段冲刺(第五天)
  2. 建立windows2003 域名服务器
  3. scrollview嵌套listview 滑动事件冲突的解决方法
  4. mac 上iterm终端显示中文为乱码解决方案
  5. MySQL数据库从GBK转换到UTF-8最简单解决方案(也适用于其它编码转换)
  6. no identity found Command /usr/bin/codesign failed with exit code 1 报错解决方法
  7. 机器学习算法总结之聚类:K-means
  8. linux虚拟机怎么显示桌面,虚拟机中如何开启Linux的3d特效桌面?
  9. ubuntu下mysql语句_Ubuntu安装mysql及常用SQL操作语句
  10. 面试准备每日五题:C++(六)——CC++、staticconstextern、sizeof strlen、指针引用、数组指针指针数组函数指针