в настоящее время работает с командой:
python foo.py "['A,B,C,D','A,B,C','A,B','A']"
И я хочу преобразовать его в фактический массив строк:
A[0] = 'A,B,C,D'
A[1] = 'A,B,C'
A[2] = 'A,B'
A[3] = 'A'
На данный момент я пытаюсь использовать json.loads()
и sys
для чтения строки в объект или список.
Однако, похоже, что наличие одиночных кавычек вызывает следующую ошибку.
ValueError: No JSON object could be decoded
Тем не менее, без одиночных кавычек я заканчиваю массив:
B = ["A","B","C","D","A","B","C","A","B","A"]
Как заставить Python игнорировать внутренние запятые, отслеживая внешние запятые, чтобы создать массив строк, указанных в A
показанных выше?
Вы можете использовать ast.literal_eval
для...
Безопасно оценить узел выражения или строку, содержащую выражение Python. Представленная строка или узел могут состоять только из следующих литеральных структур Python: строки, байты, числа, кортежи, списки, dicts, sets, booleans и None.
>>> from ast import literal_eval
>>> literal_eval("['A,B,C,D','A,B,C','A,B','A']")
['A,B,C,D', 'A,B,C', 'A,B', 'A']
json.loads
?'["A,B,C,D","A,B,C","A,B","A"]'
?