我有一些缓存文件,我将它们存储在Java中的 .dat 文件中。这些是 HashMap 数据结构:
ObjectOutputStream oos = new ObjectOutputStream(new
FileOutputStream(cachePath));
oos.writeObject(common_value_Cache);
oos.close();
现在使用我的python程序,我想打开这些文件并以相同的字典数据结构读取它们:
withopen('/cache.dat', 'rb') as handle:
b = pickle.load(handle)
反正我能做到吗? 我遇到很多错误,例如:ValueError:二进制模式不接受编码参数
如何在python中加载.dat文件?
答案 0 :(得分:1)
您可以尝试javaobj-py3
java代码以生成编码HashMap结构的cache.json文件
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.io.FileOutputStream;
import java.util.HashMap;
public class savehashmap{
public static void main(String[] args)throws IOException{
HashMap<String,String> obj=new HashMap<String,String>();
obj.put("foo","bar");
obj.put("lorem","ipsum");
obj.put("hello","world");
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("cache.dat"));
oos.writeObject(obj);
oos.close();
}
}
然后,在执行上述代码并使用pip3安装软件包后,安装javaobj-py3
>>> import javaobj
>>> with open("cache.dat","rb") as f:
... b=javaobj.loads(f.read())
...
>>> print(b)
{'hello': 'world', 'lorem': 'ipsum', 'foo': 'bar'}