Python JSON解析编码导致unicode编码错误
我需要在bash中解析一些简单的JOSN,它包含没有外部依赖的非ascii字符,所以我使用了python解决方案 这适用于ascii值,但其他值会引发此错误: “ascii”编解码器无法对位置1212处的字符u'\u2019'进行编码:序号不在范围内(128)Python JSON解析编码导致unicode编码错误,python,json,bash,python-2.x,Python,Json,Bash,Python 2.x,我需要在bash中解析一些简单的JOSN,它包含没有外部依赖的非ascii字符,所以我使用了python解决方案 这适用于ascii值,但其他值会引发此错误: “ascii”编解码器无法对位置1212处的字符u'\u2019'进行编码:序号不在范围内(128) 现在来看,我想我需要转换为unicode类型,但我不知道如何转换。您已经有了unicode,但是当打印失败时,编码 这可能是因为您没有设置语言环境,或者您的语言环境设置为ASCII,或者您正在将Python结果传输到其他内容(但您的问题中
现在来看,我想我需要转换为
unicode
类型,但我不知道如何转换。您已经有了unicode
,但是当打印失败时,编码
这可能是因为您没有设置语言环境,或者您的语言环境设置为ASCII,或者您正在将Python结果传输到其他内容(但您的问题中没有包括这一点)。在后一种情况下,Python拒绝猜测连接到管道时要使用什么编解码器(否则它可以使用终端语言环境)
将设置为合适的编解码器;例如,如果您的终端使用UTF-8:
cat $JSON_FILE | PYTHONIOENCODING=UTF-8 python -c "import sys, json; print json.load(sys.stdin)['$KEY']"
啊。。。我的错,我假设问题是在Python中,让我检查一下我是如何使用管道的,非常感谢!!!我已经为此挣扎了好几天了。
cat $JSON_FILE | PYTHONIOENCODING=UTF-8 python -c "import sys, json; print json.load(sys.stdin)['$KEY']"