Как преобразовать список списков в байты? - PullRequest
0 голосов
/ 21 апреля 2019

У меня есть список с плавающей точкой, и я хочу преобразовать его в байты.Пожалуйста, помогите мне сделать это.например

l = [[0.1, 1.0, 2.0], [2.0, 3.1, 4.1]]

и я хочу что-то вроде

bytes(l) -> b'\x01\x02\x03.......'

Ответы [ 2 ]

2 голосов
/ 21 апреля 2019

Поскольку вы отметили это numpy, это просто tobytes

a = np.array(l)
a.tobytes()

b'\x9a\x99\x99\x99\x99\x99\xb9?\x00\x00\x00\x00\x00\x00\xf0?\x00\x00\x00\x00\x00\x00\x00@\x00\x00\x00\x00\x00\x00\x00@\xcd\xcc\xcc\xcc\xcc\xcc\x08@ffffff\x10@'

Этот результат может бытьповторно обрабатывается как ndarray с использованием frombuffer, но исходная форма не сохраняется.

0 голосов
/ 21 апреля 2019

Надеюсь, это то, что вы хотели:

import struct

input = [[0.1, 1.0, 2.0], [2.0, 3.1, 4.1]]
outs = list()
string = ""

for i in input:
    for j in i:
        outs.append(bytes(struct.pack("f", j)))

for i in outs:
    string += str(i)
    print(i)

print('Bytes:', string)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...