Traceback
dump({'foo':{'bar': 5}}, getwriter('utf8')(f), ensure_ascii=False, encoding='utf8')
File "/usr/lib/pypy/lib-python/2.7/json/__init__.py", line 196, in dump
fp.write(chunk)
File "/usr/lib/pypy/lib-python/2.7/codecs.py", line 370, in write
self.stream.write(data)
TypeError: unicode argument expected, got 'str'
Code
from __future__ import unicode_literals
from codecs import getwriter
from io import open
from os import path
from tempfile import gettempdir
from json import dump
with open(path.join(gettempdir(), 'bar'), 'wt', encoding='utf8') as f:
dump({'foo':{'bar': 5}}, getwriter('utf8')(f), ensure_ascii=False,
encoding='utf8')
(run with ideone)