This is the documentation for the latest development branch of MicroPython and may refer to features that are not available in released versions.

If you are looking for the documentation for a specific release, use the drop-down menu on the left and select the desired version.

struct – Pack and unpack primitive data types.

Pack and unpack primitive data types.

This module implements a subset of the corresponding CPython module, as described below. For more information, refer to the original CPython documentation: struct.

The following byte orders are supported:

Character

Byte order

Size

Alignment

@

native

native

native

<

little-endian

standard

none

>

big-endian

standard

none

!

network (= big-endian)

standard

none

The following data types are supported:

Format

C Type

Python type

Standard size

b

signed char

integer

1

B

unsigned char

integer

1

h

short

integer

2

H

unsigned short

integer

2

i

int

integer (1)

4

I

unsigned int

integer (1)

4

l

long

integer (1)

4

L

unsigned long

integer (1)

4

q

long long

integer (1)

8

Q

unsigned long long

integer (1)

8

e

n/a (half-float)

float (2)

2

f

float

float (2)

4

d

double

float (2)

8

s

char[]

bytes

P

void *

integer

Functions

calcsize(→ int)

Return the number of bytes needed to store the given fmt.

pack(→ bytes)

Pack the values v1, v2, ... according to the format string fmt.

pack_into(→ _typeshed.Incomplete)

Pack the values v1, v2, ... according to the format string fmt

unpack(→ Tuple)

Unpack from the data according to the format string fmt.

unpack_from(→ Tuple)

Unpack from the data starting at offset according to the format string

Module Contents

struct.calcsize(fmt) int

Return the number of bytes needed to store the given fmt.

struct.pack(fmt, v1, *args, **kwargs) bytes

Pack the values v1, v2, … according to the format string fmt. The return value is a bytes object encoding the values.

struct.pack_into(fmt, buffer, offset, v1, *args, **kwargs) Incomplete

Pack the values v1, v2, … according to the format string fmt into a buffer starting at offset. offset may be negative to count from the end of buffer.

struct.unpack(fmt, data) Tuple

Unpack from the data according to the format string fmt. The return value is a tuple of the unpacked values.

struct.unpack_from(fmt, data, offset=0) Tuple

Unpack from the data starting at offset according to the format string fmt. offset may be negative to count from the end of data. The return value is a tuple of the unpacked values.