Package Exports
- pickleparser
- pickleparser/dist/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (pickleparser) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Pickle Parser
A pure Javascript implemented parser for Python pickle format
Features
- Fully supports Pickle protocol version 0~5 opcodes.
- Pure Typescript implemented.
- Provides
ParserOptionsto customize Unpickling. - Supports Browser.
- Supports Node.js.
- Provides tool to convert pickle file to JSON.
Supported Protocol Version
- 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
Demo
Online Pickle to JSON Convertor
Installation
$ npm install pickleparserUsage
Node.js
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);Browser
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);
});Terminal
npx pickleparser file.pkl file.json
# or
npm i pickleparser -g
pickletojson file.pkl file.jsonLicense
MIT