簡體   English   中英

如何在 python 中寫入和讀取 unicode 到 json 文件

[英]how to write and read unicode to json file in python

我正在嘗試使用 python3 將我的數據的 Dictionary 類型保存到 txt 文件的 json 文件中。
示例我的數據形式如下:

listdic = []
dic1 = {"id": 11106, "text": "*Kỹ_năng đàm_phán* , thuyết_phục"}
dic2 = {"id": 11104, "text": "*Ngoại_hình ưa_nhìn* , nhanh_nhẹn , giao_tiếp tốt"}
dic3 = {"id": 10263, "text": "giao_tiếp tốt"}

listdic.append(dic1)
listdic.append(dic2)
listdic.append(dic3)

在此處輸入圖像描述

我希望它像這樣保存到我的 json 文件中:

在此處輸入圖像描述

我在互聯網上閱讀了一些解決方案並嘗試了:

f = open("job_benefits.json", "a", encoding= 'utf-8')

for i in listdic:
    i = json.dumps(i)
    f.write(i + '\n')
f.close()

但我得到的結果是這樣的:

在此處輸入圖像描述

然后我嘗試讀取文件,這是我的結果:

f = open("job_benefits.json", "r", encoding= 'utf-8')

listdic = f.readlines()
for i in listdic:
    print(i)

在此處輸入圖像描述

這不是將數據寫入和讀取到我想要的 json 文件的方式,有些人可以幫助解決這種情況?
非常感謝您對我的語法感到抱歉!

您正在使用 json 模塊保存文件並將其作為文本讀回,而不是嘗試對讀取的 json 數據進行解碼。 因此,所有為防止信息丟失而進行轉義編碼的字符都保持轉義編碼。

您可以強制 json 輸出 utf-8 編碼,而不是通過傳遞dumpsdump ensure_ascii=False參數自動轉義所有非 ASCII 字符:

f = open("job_benefits.json", "a", encoding= 'utf-8')

for i in listdic:
    i = json.dumps(i, ensure_ascii=False)
    f.write(i + '\n')
f.close()

在您讀回您的行后從 JSON 解碼:

import json 

f = open("job_benefits.json", "r", encoding= 'utf-8')

listdic = f.readlines()
for i in listdic:
    print(json.loads(i))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM