преобразовать строку в массив с помощью int и None - PullRequest
0 голосов
/ 06 июля 2019

Я пытался этот код:

data=str([1, 2, 3, None, None, 4, 5])
temp=data.strip('][').split(', ')
array=list(map(lambda x: None if x==None else int(x), temp))
print(array)

Однако я получаю эту ошибку:

ValueError: invalid literal for int() with base 10: 'None'

Как я могу получить это, чтобы вернуть массив обратно в массив?Спасибо

1 Ответ

1 голос
/ 06 июля 2019

Вместо того, чтобы преобразовывать список в строковое представление, специфичное для Python, используйте стандартную (или, по крайней мере, обычно используемую) кодировку, например JSON.

lst = [1,2,3, None, None, 4, 5]
data = json.dumps(lst)
assert lst == json.loads(data)
...