python字典、字符串(json串)、字节串之间的转化

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

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

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

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

encode():   字符串→字节串

decode():   字节串→字符串

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

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

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

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

举个栗子看一下,只是部分代码,python版本为3.6.8:

  if request.method == 'POST':
    #注册
    json_str = request.body
    if not json_str:
      result = {'code':202, 'error': 'Please POST data!!'}
      return JsonResponse(result)
    #如果当前报错,请执行 json_str = json_str.decode()
    json_obj = json.loads(json_str)

    username = json_obj.get('username')
    email = json_obj.get('email')
    password_1 = json_obj.get('password_1')
    password_2 = json_obj.get('password_2')