Python 序列化和反序列化

序列化:将Python对象 保存在 变量中或者文件中,延长对象的生命周期,需要的时候再读取出来。
dumps 和 dump 都是序列化
loads 和 load 表示反序列化

有pickle 和json 模块可以使用。

dumps 和loads 操作的是变量,dumps将字典类型转化为字符串了,loads则是将字符串加载成字典,这样便于传输。
后面的 ‘s’ 是字符串的意思,并不是复数的含义。
dump 和 load 操作的是文件。

python 操作shell 的常用功能的区别:
https://blog.csdn.net/baidu_36943075/article/details/105681683

python 操作json结果,最好是使用 os.popen(),因为这样可以获取结果保存为 一个 python 对象,再转化成字典后能更灵活的取出json里的值。

示例如下:

#! /usr/bin/python
import json
import os
import subprocess

cmd = 'cat /data/vscode-pro/daemon.json'

#这行也可以获取命令执行结果
# res = subprocess.Popen(cmd,stdout=subprocess.PIPE,shell=True).stdout

res = os.popen(cmd)

#使用read()方法取出内容
# c1 = res.read()
# print(type(c1),c1)

#使用json.load() 直接将对象转化成字典
# c2 = json.load(res)
# print(type(c2),c2)


#使用json.loads() 将字符串转化成字典
c3 = json.loads(res.read())
print(type(c3),c3,type(res))
print(c3['data-root'])

三种方法的任意一种都可以获取json类型的结果

posted @ 2022-03-18 15:32  风风羊  阅读(93)  评论(0编辑  收藏  举报