строка сериализации Python - PullRequest
       12

строка сериализации Python

1 голос
/ 12 сентября 2009

Мне нужно десериализовать строку в массив на python, как php, а затем сериализовать ее обратно.

Ответы [ 4 ]

1 голос
/ 12 сентября 2009

Если вы имеете в виду взрыв PHP, попробуйте это

>>> list("foobar")
['f', 'o', 'o', 'b', 'a', 'r']

>>> ''.join(['f', 'o', 'o', 'b', 'a', 'r'])
'foobar'
0 голосов
/ 12 сентября 2009

Что "сериализовало" данные данные в строку в первую очередь? Вы действительно имеете в виду массив (и если да, то какого простого типа?), Или вы действительно имеете в виду список (и если да, то какие элементы списка должны быть ?) ... и т. д. и т. д. *

Из комментариев ОП, похоже, у него есть zin, tuple, и он пытается обработать его так, как если бы он был вместо str, в который данные были сериализованы путем травления. Поэтому он пытается десериализовать кортеж с помощью pickle.loads, и, очевидно, это не может сработать - pickle.loads хочет str (это то, что s СРЕДСТВО), НЕ кортеж - он не может работать с кортежем, он даже не знает, что делать с кортежем.

Конечно, мы также не получили нулевого указания о том, откуда взялся этот кортеж, почему он должен быть строкой, и т. Д., И т. Д. И т. П. ОП должен отредактировать свой ответ, чтобы показать больше кода (как это делается zin закуплено или получено) и особенно код, в котором zin предполагается ПРОИЗВОДИТЬ (через pickle.dumps, я представляю) и как происходит связь от производителя с этим потенциальным потребителем (или не может произойти; - ).

0 голосов
/ 12 сентября 2009

Строка уже является типом последовательности в Python. Вы можете перебирать строку по одному символу за раз так:

for char in somestring:
    do_something(char)

Вопрос в том ... что ты хотел с этим сделать? Может быть, мы можем дать более подробную информацию с более подробным вопросом.

0 голосов
/ 12 сентября 2009

Взгляните на модуль рассола . Это, вероятно, то, что вы ищете.

import pickle

# Unserialize the string to an array
my_array = pickle.loads(serialized_data)

# Serialized back
serialized_data = pickle.dumps(my_array)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...