|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
我试图用pickle创建一个.json文件,然后用json去load,但是出现了编码的错误
>>>import pickle as p
>>>import json as j
>>>b='{"y":1,"c":2}'
>>>f=open('test.json','wb')
>>>p.dump(b,f)
>>>f.close()
>>>j.load(f)
Traceback (most recent call last):
File "<pyshell#73>", line 1, in <module>
j.load(f)
File "D:\Programme\Python\lib\json\__init__.py", line 300, in load
parse_constant=parse_constant, object_pairs_hook=object_pairs_hook, **kw)
File "D:\Programme\Python\lib\json\__init__.py", line 350, in loads
s = s.decode(detect_encoding(s), 'surrogatepass')
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 0: invalid start byte
于是,我尝试不用二进制'b'去编码,结果还是报错
>>>import pickle as p
>>>import json as j
>>>b='{"y":1,"c":2}'
>>>f=open('test.json','w')
>>>p.dump(b,f)
Traceback (most recent call last):
File "<pyshell#78>", line 1, in <module>
p.dump('{"y":1,"c":2}',f)
TypeError: write() argument must be str, not bytes
但type(b) 明显是str, 为什么会报这样的错误? 最后用pickle创建.json , 用json.load() 去把字符串中的字典提取出来,应该怎么做?谢谢
|
|