我有一个烧瓶路线,我将JSON数据发布到。通过此函数将请求转换为python词典。
def request_handler(request_data):
try:
data = json.loads(request_data)
except ValueError:
return jsonres("error", "bad json")
return data
我遇到麻烦的路线如下:
@mod_api.route('/thing/create', methods=['POST'])
@api_token_required
def create_thing():
if request.method == 'POST':
data = request_handler(request.data)
在所有其他路线中,我可以从键中获取值,并使用data.get('key-name')
无需麻烦地使用它们。虽然在这个特定的路由上我得到错误,因为数据的值被认为是NoneType。虽然如果我记录数据变量中的值,输入或任何其他信息,它会在日志记录中显示它。
logging.debug(type(data))
会产生<dict>
logging.debug(data.get('starttime')
会产生123123
(编号,但会显示我正在寻找的纪元整数)
starttime = data.get('starttime') + 1
结果
Python错误:+:'int'和'NoneType'不支持的操作数类型
记录将正确显示有关数据中键值的所有信息。只要我尝试对该值执行任何操作,它就会将其视为NoneType,从而导致服务器错误。
这条线路上的各种密钥和类型的所有数据都会发生这种情况。
答案 0 :(得分:0)
尝试:
data = request.get_json( force=True, silent=True )