Как правильно преобразовать строку в список - PullRequest
0 голосов
/ 12 июля 2020

У меня есть функция, которая возвращает сообщение в виде следующей строки:

 l = ['["sure","kkk"]', '["sure","ii"]']

Я пытался удалить символ "'" с помощью итерации, но она не работает для меня. Это мой код:

print([item.replace('\'["','"').replace('"]\'','"') for item in l])

Есть ли лучший способ сделать это, так как мне нужны следующие результаты:

l = [["sure", "kkk"], [ "конечно", "ii"]]

Ответы [ 2 ]

1 голос
/ 13 июля 2020

В качестве альтернативы вы также можете использовать ast.literal_eval (см. документы ) следующим образом:

import ast

l = ['["sure","kkk"]', '["sure","ii"]']
l = [ast.literal_eval(s) for s in l]
print(l)  # [['sure', 'kkk'], ['sure', 'ii']]
1 голос
/ 12 июля 2020

Это строки в кодировке JSON, поэтому вы должны использовать для этого json API, а не пытаться разбирать его «самостоятельно»:

import json

l = ['["sure","kkk"]', '["sure","ii"]']
l = [json.loads(s) for s in l]
print(l)  # [['sure', 'kkk'], ['sure', 'ii']]

Также может быть достигнуто с помощью map. понимания списка:

l = list(map(json.loads, l))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...