Javascript可以加载Python pickle转储字符串,但不能加载fi

2024-09-30 00:35:32 发布

您现在位置:Python中文网/ 问答频道 /正文

请看下面的测试代码,我可以用jpickle库把Python pickle转储的字符串解码回来。在

(base):~/python 
Python 3.7.3 (default, Mar 27 2019, 16:54:48) 
[Clang 4.0.1 (tags/RELEASE_401/final)] :: Anaconda, Inc. on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import pickle
>>> pickle.dumps('Hello Python!')
b'\x80\x03X\r\x00\x00\x00Hello Python!q\x00.'
>>> 
(base)~$ node
> const jpickle = require('jpickle');
undefined
> jpickle.loads('\x80\x03X\r\x00\x00\x00Hello Python!q\x00.')
'Hello Python!'

当我试图将pickled字符串写入文件时,我无法在nodejs中加载它。我错在这里了?谢谢您!在

python代码:

^{pr2}$

JS公司:

const fs = require('fs');
const jpickle = require('jpickle');
const binary = fs.readFileSync('test.dat');
const data = jpickle.loads(binary)
console.log(data)

错误消息:

node_modules/jpickle/lib/jpickle.js:341
            throw "Unhandled opcode '" + opcode + "'";
            ^
Unhandled opcode '128'

jpickle输入包.json,需要从最新版本的GitHub安装:

    "jpickle": "git+https://github.com/jlaine/node-jpickle.git"
  }

Tags: 字符串nodehellobaserequirefspickleopcode
1条回答
网友
1楼 · 发布于 2024-09-30 00:35:32

这似乎对我有用。感谢Tomalak的输入。在

const binary = fs.readFileSync('test.dat', "binary");

虽然这个解决方案似乎阻碍了进程。。。在

相关问题 更多 >

    热门问题