发布时间:2019-09-28 08:39:10编辑:auto阅读(2410)
JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式,是基于ECMAScript的一个子集。
Python3 中可以使用 json 模块来对 JSON 数据进行编解码,包含两个函数:
json.dumps(): 对数据进行编码。
json.loads(): 对数据进行解码。
在json的编解码过程中,Python 的数据类型与json类型会相互转换。
json.dump():将数据保存为JSON文件
json.load():从JSON文件读取数据
Python数据类型编码为JSON数据类型转换表:
dict                                             object
list,tuple                                  array
str                                              string
Int,float,enum                     number
True                                           true
False                                         false
None                                         null
JSON解码为Python数据类型转换表:
object                                     dict
array                                        list
string                                     str
number(int)                        int
number(real)                        float
true                                           True
false                                        False
null                                            None
# -*- coding:utf-8 -*-
import json
data = {
    "id":"123456",
    "name":"Bauer",
    "age":30
}
jsonFile = "data.json"
if __name__ == '__main__':
    # 将字典数据转换为JSON对象
    print("raw data: ", data)
    jsonObject = json.dumps(data)
    print("json data: ", jsonObject)
    # 将JSON对象转换为字典类型数据
    rowData = json.loads(jsonObject)
    print("id: ", rowData["id"])
    print("name: ", rowData["name"])
    print("age: ", rowData["age"])
    # 将JSON对象保存为JSON文件
    with open(jsonFile, 'w') as file:
        json.dump(jsonObject, file)
    # 将JSON文件读取内容
    with open(jsonFile, 'r') as file:
        data = json.load(file)
        print(data)
# output:
# raw data:  {'id': '123456', 'name': 'Bauer', 'age': 30}
# json data:  {"id": "123456", "name": "Bauer", "age": 30}
# id:  123456
# name:  Bauer
# age:  30
# {"id": "123456", "name": "Bauer", "age": 30}
 51251
 50686
 41287
 38107
 32571
 29471
 28334
 23197
 23161
 21489
 1564°
 2284°
 1890°
 1829°
 2144°
 1876°
 2565°
 4298°
 4150°
 2959°