如何使用python将日语文本从json写入csv?

如何使用python将日语文本从json写入csv?,python,cjk,Python,Cjk,我想将一些日语字符写入csv,但无法使其正确显示。csv以åæ等字符结尾,我不确定我做错了什么 import requests import csv r = requests.get('http://jisho.org/api/v1/search/words?keyword=%23common') data = r.json() with open('common_words.csv', 'a', newline='', encoding='utf-8') as csvfile: w

我想将一些日语字符写入csv,但无法使其正确显示。csv以åæ等字符结尾,我不确定我做错了什么

import requests
import csv

r = requests.get('http://jisho.org/api/v1/search/words?keyword=%23common')
data = r.json()

with open('common_words.csv', 'a', newline='', encoding='utf-8') as csvfile:
    writer = csv.DictWriter(csvfile, fieldnames=['word','reading'])
    for entry in data["data"]:
        word = entry["japanese"][0]["word"]
        reading = entry["japanese"][0]["reading"]
        writer.writerow({'word':word,'reading':reading,})

代码是正确的。使用excel读取csv文件是个问题。使用文本编辑器打开文件时,字符显示正确

这里有一些可能性:(1)您使用的是Python 2而不是3,因此它的
csv
模块无法正确处理Unicode。(2) 来自web服务的输入不是UTF-8格式,而是其他格式,比如Shift JIS。(3) 您在这段代码中做的一切都是正确的,但是您用来查看结果输出的任何东西都没有使用UTF-8。对于我来说(在linux上的python 3中),我可以排除(2)-页面是UTF-8格式的,它有正确的标题,
请求
正确地解释它。通过快速测试,Python2需要进行一些明显的更改才能运行,但是通过这些更改,它创建了一个与Python3相同的文件。所以,假设这是您的真实代码,我打赌它是(3),您已经编写了非常好的代码,生成了一个非常有效的UTF-8 CSV文件,但随后在一些不需要UTF-8的东西(可能是Windows命令行?)中查看了它。如果是(3),您只需要使用不同的工具来显示/导入/无论您的CSV文件是什么,或者学习如何使用您正在使用的工具。你没有告诉我们那是什么工具,但事实上,不管是Excel X.Y还是TextEdit还是一些web界面都无关紧要;这不是Python问题,甚至不是编程问题,所以您可能需要询问其他地方。