[pypy-issue] Issue #2191: json.dumps ensure_ascii=False behavior differs from cpython (pypy/pypy)
Ryan Campbell
issues-reply at bitbucket.org
Wed Nov 18 15:43:58 EST 2015
New issue 2191: json.dumps ensure_ascii=False behavior differs from cpython
https://bitbucket.org/pypy/pypy/issues/2191/jsondumps-ensure_ascii-false-behavior
Ryan Campbell:
I ran into this recently while trying out pypy on our codebase.
Basically, `json.dumps` with `ensure_ascii=False` seems to result in a unicode string being returned in python, but not in pypy.
This resulted in a `TypeError: unicode argument expected, got 'str'` when trying to write to a file.
Python behavior:
```
macbook:~ $ python
Python 2.7.10 (default, Jul 13 2015, 12:18:59)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import json
>>> json.dumps('a')
'"a"'
>>> json.dumps('a', ensure_ascii=False)
'"a"'
>>> json.dumps(u'a')
'"a"'
>>> json.dumps(u'a', ensure_ascii=False)
u'"a"'
>>>
```
PyPy behavior:
```
macbook:~ $ pypy
Python 2.7.10 (850edf14b2c75573720f59e95767335fb1affe55, Oct 30 2015, 00:18:27)
[PyPy 4.0.0 with GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>> import json
>>>> json.dumps('a')
'"a"'
>>>> json.dumps('a', ensure_ascii=False)
'"a"'
>>>> json.dumps(u'a')
'"a"'
>>>> json.dumps(u'a', ensure_ascii=False)
'"a"'
```
Possibly related to #1627, since it looks quite similar although the behaviors seem to be reversed...
More information about the pypy-issue
mailing list