Django web 开发 - python中json数据返回

方法1

  1. # -*- coding: utf-8 -*-
  2. class BaseResponse:
  3. def __init__(self, data, message=None, code=200):
  4. self.code = code
  5. self.data = data
  6. self.message = message
  7. print(BaseResponse(data="Hello World").__dict__)

方法2

  1. #pip install demjson
  2. import demjson
  3. data = [{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}]
  4. # python object => json object
  5. json = demjson.encode(data)
  6. print(json)
  7. """
  8. :return [{"a":1,"b":2,"c":3,"d":4,"e":5}]
  9. """
  10. # json object => python object
  11. json = demjson.decode(json)
  12. print(json)
  13. """
  14. :return [{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}]
  15. """

方法3

  1. #!/usr/bin/python
  2. import json
  3. data = [{'name': '张三', 'age': 25}, {'name': '李四', 'age': 26}]
  4. # python object => json object
  5. jsonStr = json.dumps(data, ensure_ascii=False)
  6. print(jsonStr, type(jsonStr))
  7. """
  8. :return [{"name": "张三", "age": 25}, {"name": "李四", "age": 26}] <class 'str'>
  9. """
  10. # json object => python object
  11. StrJson = json.loads(jsonStr)
  12. print(StrJson, type(StrJson))
  13. """
  14. :return [{'name': '张三', 'age': 25}, {'name': '李四', 'age': 26}] <class 'list'>
  15. """

方法4

  1. class BaseResponse:
  2. def __init__(self, data, message=None, code=200):
  3. self.code = code
  4. self.data = data
  5. self.message = message
  6. def __str__(self):
  7. return {
  8. "code": self.code,
  9. "data": self.data,
  10. "message": self.message
  11. }
  12. print(BaseResponse(data="Hello World").__str__())

其他

  • djnago的http的JsonResponse方法,其中的safeFalse
  • drf的序列化器
  • 其他django的其他第三方包
  • drf的其他第三方包,及内置函数
  • 本人才疏学浅,只懂点皮毛,若存在其他内容,请自行百度