使用csvwriter将JSON解析为CSV的Unicode编码问题

时间:2017-11-29 17:51:48

标签: python json csv unicode

代码:

with open(read_json,'r',encoding='utf-8') as json_file:

    json_data = json.load(json_file)
    print(json_data)
    with open(write_csv,'w',encoding='utf-8') as csv_file:

        headers, items = parse_json(json_data,query_type)
        # i is to be iterated to get all maxResults = 50.
        writer = csv.writer(csv_file)
        writer.writerow(headers)
        for row in items:
            writer.writerow(row)

CSV文件:

enter image description here enter image description here

我的CSV文件中有奇怪的字符并不完全确定发生了什么。

1 个答案:

答案 0 :(得分:1)

Windows应用程序通常假设文本文件以ANSI编码进行编码,该编码因本地​​化Windows版本而异。 Windows-1252是美国Windows使用的编码。

Excel也会做出这样的假设,但如果它看到UTF8 BOM签名,它将使用UTF8进行编码。使用文件编码utf-8-sig来编写此签名。如果用于打开文件进行读取,它会识别并丢弃签名,因此不会影响您的Python代码。

因此,请使用utf-8-sig为Excel提供所需的提示。