Python如何将字典列表保存为UTF-8编码的txt/csv文件
代码实现方案
所有写入操作的核心是打开文件时显式指定encoding='utf-8',避免依赖系统默认编码导致非ASCII字符(如示例中的波斯语)乱码。
保存为TXT文件
根据使用场景选对应写法即可:
- 保存结构化原始数据(方便后续程序读取还原):
import json ls_dict = [ { 'a': 'میلاد'}, { 'b': 'علی'}, { 'c': 'رضا'} ] with open('result.txt', 'w', encoding='utf-8') as f: # 必须加ensure_ascii=False,否则非ASCII字符会被转义为\u开头的编码 json.dump(ls_dict, f, ensure_ascii=False, indent=2)
- 保存为人类易读的逐行键值对格式:
ls_dict = [ { 'a': 'میلاد'}, { 'b': 'علی'}, { 'c': 'رضا'} ] with open('result.txt', 'w', encoding='utf-8') as f: for dict_item in ls_dict: for key, value in dict_item.items(): f.write(f"{key}: {value}\n")
保存为CSV文件
使用Python内置csv模块实现,Windows环境下打开文件时需加newline=''参数避免写入多余空行:
import csv ls_dict = [ { 'a': 'میلاد'}, { 'b': 'علی'}, { 'c': 'رضا'} ] # 收集所有字典的键作为CSV表头 all_fields = [] for dict_item in ls_dict: all_fields.extend(dict_item.keys()) with open('result.csv', 'w', encoding='utf-8', newline='') as f: writer = csv.DictWriter(f, fieldnames=all_fields) writer.writeheader() writer.writerows(ls_dict)
注意:如果写入后打开文件看到乱码,先确认你使用的文件编辑器是否选择UTF-8编码读取文件,部分Windows系统自带记事本默认使用GBK编码打开文件,手动切换编码为UTF-8即可正常显示字符。
内容的提问来源于stack exchange,提问作者miladjurablu
相关产品推荐
相关产品推荐

