Python3 JSON 数据解析
JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。
Python3 中可以使用 json 模块来对 JSON 数据进行编解码,它包含了两个函数:
- json.dumps(): 对数据进行编码。
- json.loads(): 对数据进行解码。
在json的编解码过程中,python 的原始类型与json类型会相互转换,具体的转化对照如下:
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(JavaScript Object Notation) 是一种轻量级的数据交换格式。它使得人们很容易的进行阅读和编写。同时也方便了机器进行解析和生成。JSON采用完全独立于程序语言的文本格式,但是也使用了类C语言的习惯。
客户端和服务端的数据交换以一定的格式进行,目前,这种数据格式以xml和Json为主。Json是JavaScript Object Notation的简写,采用JavaScript引擎自然匹配的格式,因此相较于xml更为易读,传输字节数也要远小于xml格式,相较之下,更受青睐,应用广泛。
前端开发中,数据传输格式中有一部分以JSON格式进行传递,比如Ajax,需要JSON和JS对象的相互转换。
JSON基于两种结构:json简单说就是javascript中的对象和数组,所以这两种结构就是对象和数组两种结构,通过这两种结构可以表示各种复杂的结构
1、对象:对象在js中表示为“{}”括起来的内容,数据结构为 {key:value,key:value,...}的键值对的结构,在面向对象的语言中,key为对象的属性,value为对应的属性值,
{
"name":"中国",
"province":[
Object{...},
Object{...},
Object{...},
Object{...}
]
}
2、数组:数组在js中是中括号“[]”括起来的内容,数据结构为 ["java","javascript","vb",...],取值方式和所有语言中一样,使用索引获取,字段值的类型可以是 数字、字符串、数组、对象几种。
展开之前:
{
"name":"中国",
"province":Array[4]
}
展开之后:
{
"name":"中国",
"province":[
Object{...},
Object{...},
Object{...},
Object{...}
]
}
json实例如下:
{
"name":"中国",
"province":[
{
"name":"黑龙江",
"cities":{
"city":[
"哈尔滨",
"大庆"
]
}
},
{
"name":"广东",
"cities":{
"city":[
"广州",
"深圳",
"珠海"
]
}
},
Object{...},
Object{...}
]
}