相关疑难解决方法(0)

如何从JSON获取字符串对象而不是Unicode?

我正在使用Python 2ASCII编码的文本文件中解析JSON .

使用json或 加载这些文件时simplejson,我的所有字符串值都转换为Unicode对象而不是字符串对象.问题是,我必须使用一些只接受字符串对象的库的数据.我不能更改库也不能更新它们.

是否可以获取字符串对象而不是Unicode对象?

>>> import json
>>> original_list = ['a', 'b']
>>> json_list = json.dumps(original_list)
>>> json_list
'["a", "b"]'
>>> new_list = json.loads(json_list)
>>> new_list
[u'a', u'b']  # I want these to be of type `str`, not `unicode`
Run Code Online (Sandbox Code Playgroud)

更新

很久以前,当我遇到Python 2时,问这个问题.今天一个简单而干净的解决方案是使用最新版本的Python - 即Python 3和转发版.

python unicode serialization json python-2.x

272
推荐指数
8
解决办法
30万
查看次数

Python UnicodeDecodeError - 我误解了编码吗?

为什么这不起作用的任何想法?我真的认为'忽略'会做正确的事.

>>> 'add \x93Monitoring\x93 to list '.encode('latin-1','ignore')
Traceback (most recent call last):
  File "<interactive input>", line 1, in ?
UnicodeDecodeError: 'ascii' codec can't decode byte 0x93 in position 4: ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)

python unicode ascii encode ignore

54
推荐指数
1
解决办法
4万
查看次数

Python JSON和Unicode

更新:

我在这里找到了答案:Python UnicodeDecodeError - 我误解了编码吗?

当我读取它时,我需要将传入的文件显式解码 Unicode.因为它的字符既不可接受也不是unicode.所以编码在遇到这些字符时失败了.

原始问题

所以,我知道有些东西我不会来这里.

我有一个unicode字符串数组,其中一些包含非Ascii字符.

我想将其编码为json

json.dumps(myList)
Run Code Online (Sandbox Code Playgroud)

它抛出一个错误

UnicodeDecodeError: 'ascii' codec can't decode byte 0xb4 in position 13: ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)

我该怎么做?我已经尝试将ensure_ascii参数设置为True和False,但都没有修复此问题.

我知道我将unicode字符串传递给json.dumps.我知道json字符串是unicode.为什么不只是为我排序呢?

我究竟做错了什么?

更新:Don Question明智地建议我提供堆栈跟踪.这里是.:

Traceback (most recent call last):
  File "importFiles.py", line 69, in <module>
    x = u"%s" % conv
  File "importFiles.py", line 62, in __str__
    return self.page.__str__()
  File "importFiles.py", line 37, in __str__
    return json.dumps(self.page(),ensure_ascii=False)
  File "/usr/lib/python2.7/json/__init__.py", line 238, in dumps
    **kw).encode(obj)
  File "/usr/lib/python2.7/json/encoder.py", line 204, in encode …
Run Code Online (Sandbox Code Playgroud)

python unicode json

6
推荐指数
1
解决办法
1万
查看次数

标签 统计

python ×3

unicode ×3

json ×2

ascii ×1

encode ×1

ignore ×1

python-2.x ×1

serialization ×1