python字典dict、json字符串、bytes之间的转化

字典和json字符串(本质也是字符串)之间的转化用json.dumps和json.loads()

json.dumps(): 字典→json字符串

json.loads(): json字符串→字典

import json


a = {
     'name':'xiaoming','age':18}

print(a)
print(type(a))

b = json.dumps(a)

print(b)
print(type(b))


c = json.loads(b)

print(c)
print(type(c))
{
     'name': 'xiaoming', 'age': 18}
<class 'dict'>
{
     "name": "xiaoming", "age": 18}
<class 'str'>
{
     'name': 'xiaoming', 'age': 18}
<class 'dict'>

字符串和bytes之间的转化用encode()和decode()

encode(): 字符串→bytes

decode(): bytes→字符串

import json


a = {
     'name':'xiaoming','age':18}

print(a)
print(type(a))

b = json.dumps(a).encode()

print(b)
print(type(b))


c = json.loads(b)

print(c)
print(type(c))

{
     'name': 'xiaoming', 'age': 18}
<class 'dict'>
b'{"name": "xiaoming", "age": 18}'
<class 'bytes'>
{
     'name': 'xiaoming', 'age': 18}
<class 'dict'>

所以这三种类型的数据可以通过字符串这个中间量进行转化,达到字典和字节串的互相转化。

例如注册页面,前端通过post方式向后端发送请求,后端从request.body里拿数据,这里拿到的数据本质类型是bytes数据。

python3.6.8的可以直接用json.loads()把字节串直接转为字典,再从字典里拿对应的信息

python3.5.2就不行,必须要把字节串先转为字符串,再才能字符串变为字典

你可能感兴趣的:(python)