Python JSON数据读写操作


5个月前 256次点击 来自 其他

标签: Python

JSON的数据类型和Python的数据类型对应关系:

JSON Python
object dict
array list
string str
number (int / real) int / float
true / false True / False
null None
Python JSON
dict object
list, tuple array
str string
int, float, int- & float-derived Enums number
True / False true / false
None null

json模块主要有四个比较重要的函数,分别是:

  • dump - 将Python对象按照JSON格式序列化到文件中
  • dumps - 将Python对象处理成JSON格式的字符串
  • load - 将文件中的JSON数据反序列化成对象
  • loads - 将字符串的内容反序列化成Python对象

可以观察到,dump与load序列化以文件为中间转换对象,而dumps与loads序列化以字符串为中间转换对象(loads与load不同之处就在于多了个s - string)。

dump 与 load

  • dump - 将Python对象按照JSON格式序列化到文件中
  • load - 将文件中的JSON数据反序列化成对象
import json


def dump():
    mydict = {
        'name': '骆昊',
        'age': 38,
        'qq': 957658,
        'friends': ['王大锤', '白元芳'],
        'cars': [
            {'brand': 'BYD', 'max_speed': 180},
            {'brand': 'Audi', 'max_speed': 280},
            {'brand': 'Benz', 'max_speed': 320}
        ]
    }
    try:
        with open('data.json', 'w', encoding='utf-8') as fs:
            json.dump(mydict, fs)
    except IOError as e:
        print(e)
    print('保存数据完成!')

def load():
    with open('data.json', 'r', encoding='utf-8') as fs:
        data = json.load(fs)
        print(data)
				
if __name__ == '__main__':
    dump()
		load()

dumps 与 loads

  • dumps - 将Python对象处理成JSON格式的字符串
  • loads - 将字符串的内容反序列化成Python对象
import json


def dumps():
    mydict = {
        'name': '骆昊',
        'age': 38,
        'qq': 957658,
        'friends': ['王大锤', '白元芳'],
        'cars': [
            {'brand': 'BYD', 'max_speed': 180},
            {'brand': 'Audi', 'max_speed': 280},
            {'brand': 'Benz', 'max_speed': 320}
        ]
    }
    return json.dumps(mydict)


def loads(jsonstr):
    return json.loads(jsonstr)


if __name__ == '__main__':
    print(dumps())
    print(loads(dumps()))

Made with in Shangrao,China By Devler.

Copyright © Devler 2012 - 2022

赣ICP备19009883号-1

Top ↑