Python学习笔记
公众号搜索--树莓派OpenCV学舍
Json
什么是 JSON ?
JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)
JSON 是轻量级的文本数据交换格式(相较于XML而言)
JSON 独立于语言:JSON 使用 Javascript语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许多不同的编程语言。 目前非常多的动态(PHP,JSP,.NET)编程语言都支持JSON。所以,对于新手而言,我着重记录一下,JSON并非python独有,而是类似于胶水语言的特性,它能在不同的语言环境中传递数据。
与 XML 相同之处
·JSON 是纯文本
·JSON 具有"自我描述性"(人类可读)
·JSON 具有层级结构(值中存在值)
·JSON 可通过 JavaScript 进行解析
·JSON 数据可使用 AJAX 进行传输
与 XML 不同之处
没有结束标签
更短
读写的速度更快
能够使用内建的 JavaScript eval() 方法进行解析
使用数组
不使用保留字
JSON 语法规则
JSON 语法是 JavaScript 对象表示语法的子集。
·数据在名称/值对中
·数据由逗号分隔
·大括号保存对象
·中括号保存数组
JSON 名称/值对
JSON 数据的书写格式是:名称/值对。
名称/值对包括字段名称(在双引号中),后面写一个冒号,然后是值:
"name" : "树莓派OpenCV学舍"
这很容易理解,等价于这条 JavaScript 语句:
name = "树莓派OpenCV学舍"
JSON 值
JSON 值可以是:
·数字(整数或浮点数)
·字符串(在双引号中)
·逻辑值(true 或 false)
·数组(在中括号中)
·对象(在大括号中)
·null
Python 编码为 JSON 类型转换对应表:
Python | JSON |
dict | object |
list, tuple | array |
str | string |
int, float, int- & float-derived Enums | number |
True | true |
False | false |
None | null |
JSON 解码为 Python 类型转换对应表:
JSON | Python |
object | dict |
array | list |
string | str |
number (int) | int |
number (real) | float |
true | True |
false | False |
null | None |
json.dumps(): 对数据进行编码。
json.loads(): 对数据进行解码。
如果你要处理的是文件而不是字符串,你可以使用 json.dump() 和 json.load() 来编码和解码JSON数据。例如: