您好:参考书本

import json
import requests

url = "https://www.googleapis.com/books/v1/volumes?maxResults=5&q=Python&projection=lite"
jsonfile = "Books.json"
r = requests.get(url)
r.encoding = "utf8"
json_data = json.loads(r.text)

print(json_data)

with open(jsonfile, \'w\') as fp:
json.dump(json_data, fp)

在开发软件,呈现中文字但写入Books.json却是 \\u8cc7请问这是什么原因?该如何处理呢?谢谢

1 个回答

1

whoami

iT邦新手 1 级 ‧ 2024-09-16 22:10:18

最佳解答

Answer from ChatGPT

这种情况是因为在 Python 中,当将 Unicode 字符(例如中文)写入 JSON 文件时,预设会将其转换为 Unicode 编码的转义序列,例如 \\u8cc7,这代表的是「资」这个字。这样的转换是为了保证 JSON 文件的兼容性,特别是针对不支持 Unicode 的应用程式。

要解决这个问题,使 JSON 文件直接显示中文字符而不是转义序列,你可以在 json.dump() 函数中使用 ensure_ascii=False 这个参数。这样,Python 会以非 ASCII 编码(即 Unicode)直接写入中文字符。

修改範例如下:

import json
import requests

url = "https://www.googleapis.com/books/v1/volumes?maxResults=5&q=Python&projection=lite"
jsonfile = "Books.json"
r = requests.get(url)
r.encoding = "utf8"
json_data = json.loads(r.text)

print(json_data)

with open(jsonfile, \'w\', encoding=\'utf8\') as fp:
    json.dump(json_data, fp, ensure_ascii=False, indent=4)

这样处理后,Books.json 中的中文会以可读形式显示,而不是以 Unicode 转义的形式出现。


  • 1

noway

iT邦研究生 1 级 ‧
2024-09-17 10:39:11

谢谢!

修改

yydaixie

iT邦新手 5 级 ‧ 2024-09-17 14:29:46

【**此则讯息已被站方移除**】