2021-03-02 flask-restful传参

使用
from flask_restful import Resource, reqparse
来进行参数校验的时候,需要传一个列表嵌套字典的结构,参数定义如下:
self.parser.add_argument('data', type=list, required=True)

单元测试中data传json会出错,data中列表嵌套字典,parser解析出来的是列表嵌套字典的key,传值如下:

{"data": [{"id": 4, "name": "2019-06-15 \u661f\u671f\u516d", "timeSlot": {"16:55:00-17:00:00": [698], "20:55:00-21:40:00": [698]}, "wkId": 6}, {"id": 5, "name": "2019-06-14 \u661f\u671f\u4e94", "timeSlot": {"16:55:00-17:00:00": [567], "20:55:00-21:40:00": [502]}, "wkId": 5}], "province_id": 1, "user_id": "9880", "exp_course_version": {"123": 107, "456": 13, "567": 84, "698": 12, "789": 15}, "exp_grade_id": 11, "exp_subject_id": 5}

变成了:

 {'data': ['id', 'name', 'timeSlot', 'wkId'], 'user_id': '9880', 'province_id': 1, 'exp_course_version': "{'123': 107, '456': 13, '567': 84, '698': 12, '789': 15}", 'exp_grade_id': 11, 'exp_subject_id': 5}

若直接传字典则不报错Failed to decode JSON object

为了解决这个问题,一开始是想自定义数据类型,于是走进了死胡同,正确解答是:self.parser.add_argument('data', type=str, required=True)
传字符串,过来后自己解析
这时候需要注意:前端传递的data列表要转换成字符串

你可能感兴趣的:(2021-03-02 flask-restful传参)