iso8583
iso8583 module serializes and deserializes ISO8583 data between a bytes or bytearray instance containing ISO8583 data and a Python dict.
iso8583 supports custom specifications that can define field encoding (e.g. ASCII, EBCDIC, ISO8859-1, BCD, etc.), field types (e.g. fixed, LLVAR, LLLVAR, etc.), and maximum length
Install:
pip install pyiso8583
Decode iso8583 data received from a socket.
>>> import iso8583
>>> from iso8583.specs import default
>>> s = b'0200\x40\x10\x00\x00\x00\x00\x00\x00161234567890123456123456'
>>> doc_dec, doc_enc = iso8583.decode(s, spec=default)
Contents of the produced dictionaries.
>>> import pprint
>>> pprint.pp(doc_dec) # Decoded data
{'bm': {2, 12},
't': '0200',
'p': '4010000000000000',
'2': '1234567890123456',
'12': '123456'}
>>> pprint.pp(doc_enc) # Encoded data
{'bm': {2, 12},
't': {'len': b'', 'data': b'0200'},
'p': {'len': b'', 'data': b'@\x10\x00\x00\x00\x00\x00\x00'},
'2': {'len': b'16', 'data': b'1234567890123456'},
'12': {'len': b'', 'data': b'123456'}}
Pretty print result using iso8583.pp.
>>> iso8583.pp(doc_dec, spec=default) # Decoded data only
'bm' Enabled Fields : [2, 12]
't' Message Type : [0200]
'p' Bitmap, Primary : [4010000000000000]
'2' Primary Account Number (PAN) : 16 [1234567890123456]
'12' Time, Local Transaction : [123456]
Add or remove fields.
>>> iso8583.del_field(doc_dec, '12') # Decoded data only
'123456'
>>> doc_dec['t'] = '0210'
>>> iso8583.add_field(doc_dec, '39', '00') # Decoded data only
Encode iso8583 data to send to a socket.
>>> s, doc_enc = iso8583.encode(doc_dec, spec=default)
>>> print(s)
bytearray(b'0210@\x00\x00\x00\x02\x00\x00\x0016123456789012345600')
For more info read the docs.
Contribute
iso8583 is hosted on GitHub.
Feel free to fork and send contributions over.
Metadata
Release files for pyiso8583 1.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| pyiso8583-1.0.1.tar.gz | 12.2 kB | Without provenance | Details for pyiso8583-1.0.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| pyiso8583-1.0.1-py3-none-any.whl | Python 3 | none | any | Details for pyiso8583-1.0.1-py3-none-any.whl |
Total release size: 25.7 kB
Release files / pyiso8583-1.0.1.tar.gz
| Download URL | pyiso8583-1.0.1.tar.gz |
|---|---|
| Size | 12.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2fdd2edbb796350c11c133099fd88947bca93b11ad3249d7f90a46d276fdeb23
|
|
BLAKE2b-256 checksum How to use checksums |
999e342a36e0334f398cb6beb8f92b42f10406a476799699b3e9eaab6371a409
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.37.0 CPython/3.8.0
|
Release files / pyiso8583-1.0.1-py3-none-any.whl
| Download URL | pyiso8583-1.0.1-py3-none-any.whl |
|---|---|
| Size | 13.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1c2c6568a36d183bb3f845f2b4dbabdc93ce9787f2aecddfc7aa94bed8d7a79c
|
|
BLAKE2b-256 checksum How to use checksums |
3228ad64c7210c1c1d1fa2d0d8c1e5254bc3f017b88d24138cded8de2b51fa3b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.37.0 CPython/3.8.0
|
Security for pyiso8583 1.0.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.