New submission from hhas <[email protected]>:
json.loads() accepts strings but errors on bytes objects. Documentation and API
indicate that both should work. Review of json/__init__.py code shows that the
loads() function's 'encoding' arg is ignored and no decoding takes place before
the object is passed to JSONDecoder.decode()
Tested on Python 3.1.2 and Python 3.2rc1; fails on both.
Example:
#################################################
#!/usr/local/bin/python3.2
import json
print(json.loads('123'))
# 123
print(json.loads(b'123'))
#
/Library/Frameworks/Python.framework/Versions/3.1/lib/python3.1/json/decoder.py:325:
# TypeError: can't use a string pattern on a bytes-like object
print(json.loads(b'123', encoding='utf-8'))
#
/Library/Frameworks/Python.framework/Versions/3.1/lib/python3.1/json/decoder.py:325:
# TypeError: can't use a string pattern on a bytes-like object
#################################################
Patch attached.
----------
components: Library (Lib)
files: json.diff
keywords: patch
messages: 126772
nosy: hhas
priority: normal
severity: normal
status: open
title: json.loads() throws TypeError on bytes object
type: behavior
versions: Python 3.1, Python 3.2
Added file: http://bugs.python.org/file20481/json.diff
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue10976>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com