我做了一些基本的代码来解释我的问题:如何在Python3中正确生成并使用UTF-8 json? (用瓶和请求)
produceUTF8.py(回复“它的工作!” Unicode字符) - 运行此第一
# -*- coding: utf-8 -*-
import os
from sys import argv
from flask import Flask, request, Response, jsonify
import json
app = Flask(__name__)
app.config['JSON_AS_ASCII'] = False # contribution from Erdem
@app.route('/reply', methods=['POST'])
def reply():
"""Fetch a reply
"""
print("DEBUG entered")
params = request.json
print("DEBUG entered2")
if not params:
return jsonify({
'status': 'error',
'error': 'Request must be of the application/json type!',
})
reply = "ít wórked!"
# Send the response.
return jsonify({
'status': 'ok',
'reply': reply,
})
if __name__ == '__main__':
app.run(host='0.0.0.0', debug=True)
consumeUTF8.py(职位信息“伊亚”,以获得生产的答案)
# -*- coding: utf-8 -*-
import requests
HEADERS = {'Content-Type': 'application/json; charset=utf-8',}
DATA = '{"message": "óíá"}'
my_request = requests.post('http://localhost:5000/reply', headers=HEADERS, data=DATA)
response = my_request.json()['reply']
在我的制片人,我收到“错误的请求(400)”和消费者的“json.decoder.JSONDecodeError:期待值:第1行第1列(char 0)“。
这似乎是在调试打印中看到的params = request.json
中的问题。这里推荐的方法是什么?
谢谢!
它停止了错误的请求!谢谢..我会在邮递员代码片段生成器上创建一个问题来添加这个编码部分=) – StaticX