接受前端数据进行转换!

需求

1.接受前端传递的数据转化为字典,后端使用参数去请求任意接口。
解决办法:
json 中的 loads函数

For example

import json
class GoodsListView(View):
	def get(self, request):
	………
    demo_str = '{"status": "ok"}'
    demo_json = json.loads(demo_str)
    print('type --------> %s' % type(demo_json))
    print('demo_json --------> %s' % demo_json)

控制台输出:

type -----------> <class 'dict'>
demo_json -----------> {'status': 'ok'}

Process finished with exit code 0

loads这个函数当然没这么简单,它能将字符串中的整数、浮点数、嵌套字典、数组、布尔值、butes成功转化。

import json

if __name__ == '__main__':
    # 整数+浮点+嵌套字典+数组 测试
    demo_str = '{"status": {"number": 12322, "float": 12.21, "list": [1,2, "3"]}}'
    demo_json = json.loads(demo_str)
    print('type -----------> %s' % type(demo_json ))
    print('demo_json -----------> %s' % demo_json )

# if __name__ == '__main__':
    # 布尔值+空值 测试
    # demo_str = '{"status1": true, "status2": false, "status3": null}'
    # demo_json = json.loads(demo_str)
    # print('type -----------> %s' % type(demo_json ))
    # print('demo_json -----------> %s' % demo_json )

控制台输出;

type -----------> <class 'dict'>
demo_json-----------> {'status': {'number': 12322, 'float': 12.21, 'list': [1, 2,  '3']}}
 
Process finished with exit code 0
    
type -----------> <class 'dict'>
demo_json-----------> {'status1': True, 'status2': False, 'status3': None}

Process finished with exit code 0

就不多做赘叙了,给大家看看loads 的两段关键源码

elif nextchar == 'n' and string[idx:idx + 4] == 'null':
    return None, idx + 4
elif nextchar == 't' and string[idx:idx + 4] == 'true':
    return True, idx + 4
elif nextchar == 'f' and string[idx:idx + 5] == 'false':
    return False, idx + 5
    
**********************源码看懂关键字才有研究动力*************************
***********************************************************************

elif nextchar == 'N' and string[idx:idx + 3] == 'NaN':
    return parse_constant('NaN'), idx + 3
elif nextchar == 'I' and string[idx:idx + 8] == 'Infinity':
    return parse_constant('Infinity'), idx + 8
elif nextchar == '-' and string[idx:idx + 9] == '-Infinity':
    return parse_constant('-Infinity'), idx + 9

Thank you for reading !!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值