在 Python 中,json.dumps()
函式會將 Python 物件序列化為 JSON 字串,並預設使用 UTF-8 編碼來處理非 ASCII 字元。雖然在 Python 3 中,字串是預設以 Unicode 形式儲存的,但是當 json.dumps()
將 Python 字串轉換為 JSON 格式時,非 ASCII 字元會自動被轉義為 Unicode 碼點(例如 \uXXXX
)。
這是 json.dumps()
預設行為之一,目的是確保生成的 JSON 資料是有效的 ASCII 字串,因此它會將非 ASCII 字元(例如中文)轉為 Unicode 轉義序列(如 \u4e2d
表示中文字元 "中")。
如果你希望避免這種 Unicode 轉義並直接輸出原始字串,可以使用 ensure_ascii=False 引數。例如:
import json
data = {
"name": "中文字元"
}
# 序列化時避免 Unicode 轉義
json_str = json.dumps(data, ensure_ascii=False)
print(json_str)
輸出結果:
{"name": "中文字元"}
[!TIP]
ensure_ascii=False
的作用就是確保json.dumps()
不會將非 ASCII 字元轉義為 Unicode 編碼,直接保留原始字元。