Python解码、编码Json的方法详解

python对象编码为json的方法:

  • json.dumps(data) : 把python字典,转化为json字符串
  • json.dump(data) : 将python字典写入json文件
  • demjson.encode(data) : python字典转化为json字符串

json解码为python对象的方法:

  • json.loads(data) : 解析一个有效的JSON字符串并将其转换为Python字典
  • json.load(data) : 从一个文件读取JSON类型的数据,然后转转换成Python字典
  • demjson.decode(data) : 将json字符串转化为python字典

json模块

使用json模块要提前导入 import json

json.dumps(data)

# python数据编码为json数据
python_data = {'name':'shanliangsan','pass':123456,'age':18 }
data = json.dumps(python_data)
print(data) # {"name": "shanliangsan", "pass": 123456, "age": 18}
# 格式化输出
data_format = json.dumps(python_data, sort_keys = True, indent = 4, separators = (',',':'))
print(data_format)
'''
格式化输出结果:
{
    "age":18,
    "name":"shanliangsan",
    "pass":123456
}
'''

json.loads(data)

# 已编码的json数据解码为python数据
json_data = '{"name": "shanliangsan", "pass": 123456, "age": 18}'
data1 = json.loads(json_data)
print(data1) # {'name': 'shanliangsan', 'pass': 123456, 'age': 18}

json.dump(data)

# 将python数据写入json文件中
python_data = {'domain': 'staging.dashboard.unity3d.com', 'httpOnly': False, 'name': 'siftid', 'path': '/', 'secure': False, 'value': '82a06091-3969-5f29-60a8-d9562f6666ee'}
json_file_path = ("D:/JsonParse1.json")
json.dump(python_data,open(json_file_path,"w"))

json.load(data)

# 将文件中存在的json数据解码为python数据
data2 = json.load(open("D:/JsonParse.json"))   
print(data2) 
'''
运行结果
{'domain': 'staging.dashboard.com', 'httpOnly': False, 'name': 'siftid', 'path': '/', 'secure': False, 'value': '231314141-3969-5f29-60a8-cmdkkviea4ee'}
'''
print(type(data2)) # <class 'dict'>

demjson库

demjson是python的第三方库,使用之前需要先下载。
命令:pip install demjson
在这里插入图片描述
在使用之前也需要导入:import demjson

demjson.encode(data)

# python数据转化为json字符串
python_dict = {'domain': 'staging.dashboard.com', 'httpOnly': False, 'name': 'siftid', 'path': '/', 'secure': False, 'value': '231314141-3969-5f29-60a8-cmdkkviea4ee'}
json_data = demjson.encode(python_dict)
print(json_data) # {"domain":"staging.dashboard.com","httpOnly":false,"name":"siftid","path":"/","secure":false,"value":"231314141-3969-5f29-60a8-cmdkkviea4ee"}

demjson.decode(data)

# 将json字符串转化为python字典
json_str = '{"domain":"staging.dashboard.com","httpOnly":false,"name":"siftid","path":"/","secure":false,"value":"231314141-3969-5f29-60a8-cmdkkviea4ee"}'
python_data = demjson.decode(json_str)
print(python_data) # {'domain': 'staging.dashboard.com', 'httpOnly': False, 'name': 'siftid', 'path': '/', 'secure': False, 'value': '231314141-3969-5f29-60a8-cmdkkviea4ee'}

注:

  • python字典和json字符串不是很好分辨,他们最大区别在于,json字符串的引号都是双引号,python字典中的引号都是单引号。
  • code后面的注释是运行结果,供参考。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值