如何让 Python 输出文件的内容为汉字而不是\u5f71 这种形式的字符

2017-04-01 10:45:54 +08:00
 cfans1993

不熟悉 python,想用 python 把 xls 文件转成 json 格式,用了下面的代码,在 python shell 能正常输出中文,可是一保存到文件里就是\u 的形式,环境为 win7 x64,python 3.6,不知道要怎么解决

import xlrd
from collections import OrderedDict
import json
import codecs

wb = xlrd.open_workbook('1.xls')

convert_list = []
sh = wb.sheet_by_index(0)
title = sh.row_values(0)
for rownum in range(1, sh.nrows):
    rowvalue = sh.row_values(rownum)
    single = OrderedDict()
    for colnum in range(0, len(rowvalue)):
        print(title[colnum], rowvalue[colnum])
        single[title[colnum]] = rowvalue[colnum]
    convert_list.append(single)
    
j = json.dumps(convert_list)

with codecs.open('file.json',"w","utf-8") as f:
    f.write(j)

1686 次点击
所在节点    问与答
1 条回复
cfans1993
2017-04-01 10:56:32 +08:00
找到问题了, 原来是 json_dumps 的原因,需加加上 ensure_ascii=False
json.dumps(convert_list,ensure_ascii=False,indent=2)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/351926

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX