解决 python 输出/写中文到 txt 打开看是乱码的问题

当尝试进行中文输出的时候,基本打印出来的情况都是乱码,这个时候应该怎么解决?
网上非常多版本的解决方法都是老旧没有更新,大家尝试过后相信都会报这样一个错误:

TypeError: __init__() got an unexpected keyword argument ‘encoding'

这个原因就是在 python3 中,json.dumps() 中压根就没有 encoding 这个参数
下面是它的 API doc,可以看下:

json.dumps(obj, *, skipkeys=False, ensure_ascii=True,
check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, default=None, sort_keys=False, **kw)

 

解决方法
1- python2 版本:利用json.dumps进行转换

import json
s = '你好啊'
print(json.dumps(s, encoding='UTF-8', ensure_ascii=False))

 

2- python3 版本:直接在写入文件的是否加上encoding这个参数

    with open('filename.json', 'w', encoding="utf-8") as f:
        f.write(json.dumps(dicts, ensure_ascii=False))

上面的dicts就是你要写入的内容。

 

转自: https://blog.csdn.net/weixin_43509263/article/details/90203694

 

 


 

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值