python后期数据编码
我有一个flask方法,它将获取post数据并进行查询,代码如下python后期数据编码,python,flask,encoding,Python,Flask,Encoding,我有一个flask方法,它将获取post数据并进行查询,代码如下 @app.route('/register/search', methods=['POST']) @cross_origin(origin='*') def register_search(): json_data = request.get_json() param = {} if 'startrow' in request.json: param['startrow'] = reques
@app.route('/register/search', methods=['POST'])
@cross_origin(origin='*')
def register_search():
json_data = request.get_json()
param = {}
if 'startrow' in request.json:
param['startrow'] = request.json['startrow']
if 'endrow' in request.json:
param['endrow'] = request.json['endrow']
if 'company_name' in request.json:
param['company_name'] = request.json['company_name']
我使用angular进行请求测试,公司名称为2个汉字,但参数为['company_name']
获取如下字符串“\xe4\xb8\xad\xe6\x96\x87”,如何获取原始汉字
从param['company_name']'\xe4\xb8\xad\xe6\x96\x87`看起来像utf8编码的unicode。 尝试将其转换回unicode:
param['company_name'] = request.json['company_name'].decode('utf-8')
我想我找到了一个解决办法: 错误 如果我使用字符串concat进行如下查询,我会遇到问题:
sql = "select * from company where name like " + param['company_name']
cursor.execute(sql)
正确
sql = "select * from company where name like %s"
cursor.execute(sql,("%"+param['company_name']+"%"))
使用准备好的支架,它会起作用的
希望这有帮助谢谢你的回复,我尝试了这个方法,但得到了以下错误消息:
param['company\u name']=request.json['company\u name'].decode('utf-8')
AttributeError:'str'对象没有属性'decode']
你在使用python2吗?看看这个,它可能会帮助你解决问题: