Python3 json 带有日文字符

Python3 json with japanese characters

我正在使用 aws lambda return 一个带有一些日语字符的简单 json。 我似乎无法让字符正确显示。 这是我的代码的样子:

def lambda_handler(event, context):

minutes = datetime.datetime.now().minute
status = ""

if minutes < 10:
    status = u"良好"
else:
    status = u"不良"

response = {}
response['ID'] = 1
response['Status'] = status

data = json.dumps(response, indent=2, ensure_ascii=False)
data = json.loads(data)

return data

以上代码returns:

{"ID": 1, "Status": "\u4e0d\u826f"}

我也试过这个:

data = json.dumps(response, indent=2, ensure_ascii=False).encode('utf-8)

但是没有用。

如何获得对 return 日文字符的响应?

编辑: 我还注意到一件事。在浏览器中,我得到了上面的 json 输出,但是当 运行 在 AWS 控制台中进行测试时,我得到了正确显示的字符。这是什么意思?

是不是你终端的问题?

我的 Mac 终端上正确显示了日语字符。

import json

minutes = 9
status = ""

if minutes < 10:
    status = u"良好"
else:
    status = u"不良"

response = {}
response['ID'] = 1
response['Status'] = status

data = json.dumps(response, indent=2, ensure_ascii=False)
data = json.loads(data)

print(data)

{'ID': 1, 'Status': '良好'}

https://ideone.com/XZeVkS

如果您 运行 使用 ensure_ascii 的烧瓶没有解决问题,您必须通过这种方式在应用程序级别更改禁用它:

app = Flask(__name__)
app.config['JSON_AS_ASCII'] = False