【发布时间】:2017-01-19 21:02:19
【问题描述】:
对于 Python3,我关注了 @Martijn Pieters's code:
import gzip
import json
# writing
with gzip.GzipFile(jsonfilename, 'w') as fout:
for i in range(N):
uid = "whatever%i" % i
dv = [1, 2, 3]
data = json.dumps({
'what': uid,
'where': dv})
fout.write(data + '\n')
但这会导致错误:
Traceback (most recent call last):
...
File "C:\Users\Think\my_json.py", line 118, in write_json
fout.write(data + '\n')
File "C:\Users\Think\Anaconda3\lib\gzip.py", line 258, in write
data = memoryview(data)
TypeError: memoryview: a bytes-like object is required, not 'str'
有什么想法吗?
【问题讨论】:
-
这段代码可能是用python2编写的。尝试对数据进行编码:
(data+'\n').encode('utf-8'). -
@Bakuriu 不,同样的错误。
标签: json python-3.x gzip