A pure Javascript implemented parser for Python pickle format
npm install pickleparserA pure Javascript implemented parser for Python pickle format
* Fully supports Pickle protocol version 0~5 opcodes.
* Pure Typescript implemented.
* Provides ParserOptions to customize Unpickling.
* Supports Browser.
* Supports Node.js.
* Provides tool to convert pickle file to JSON.
* Pickle protocol version 0
* Pickle protocol version 1
* Pickle protocol version 2 (Python 2.3)
* Pickle protocol version 3 (Python 3.0)
* Pickle protocol version 4 (Python 3.4)
* Pickle protocol version 5 (Python 3.8)
For more details, see: Supported Opcodes
``sh`
$ npm install pickleparser
typescript
import fs from 'node:fs/promises';
import path from 'node:path';
import { Parser } from 'pickleparser';async function unpickle(fname: string) {
const pkl = await fs.readFile(path.join(fname), 'binary');
const buffer = Buffer.from(pkl, 'binary');
const parser = new Parser();
return parser.parse(buffer);
}
const obj = await unpickle('pickled.pkl');
console.log(obj);
`
$3
`javascript
const fileSelector = document.getElementById('file_selector');
const jsonResultPreviewer = document.getElementById('json_result_previewer');fileSelector.addEventListener('change', function (e) {
const file = fileSelector.files[0];
const reader = new FileReader();
reader.onload = function (event) {
const buffer = new Uint8Array(event.target.result);
const parser = new pickleparser.Parser();
const obj = parser.parse(buffer);
const json = JSON.stringify(obj, null, 4);
jsonResultPreviewer.innerText = json;
}
reader.readAsArrayBuffer(file);
});
`$3
`bash
npx pickleparser file.pkl file.json
or
npm i pickleparser -g
pickletojson file.pkl file.json
``MIT