Python 2.7读取UTF-8编码jsonl文件报非ASCII字符错误如何解决
问题根因定位
你遇到的报错和代码侧的编码配置无关,核心错误出在执行命令的逻辑:python my_single_jsonl.jsonl是让Python解释器把JSONL文件当成Python脚本解析,自然会把文件里的非ASCII字符识别为语法错误。
可行解决方法
- 修正执行命令
使用cat命令读取JSONL文件内容,再通过管道传给你的Python脚本即可,不需要修改源文件:
cat my_single_jsonl.jsonl | python my_python_code.py
- 额外编码兼容适配(若修正命令后仍有编码报错)
- 执行命令前先设置Python标准流默认编码为UTF-8:
export PYTHONIOENCODING=utf-8
- 调整代码中读取行的逻辑,手动处理编码转换:
# coding=utf-8 from __future__ import unicode_literals import os import json import sys def extract_jsonl_data(): json_as_list= [] for line in sys.stdin: # 先按UTF-8解码字节串,再转成符合json解析要求的格式 processed_line = line.decode('utf-8').encode('utf-8') json_as_list.append(json.loads(processed_line)) return json_as_list
内容的提问来源于stack exchange,提问作者Greg Williams
相关产品推荐
相关产品推荐

