Я пытаюсь преобразовать следующую строку в словарь, где IP становится ключом, а все остальное после | становится значением:Как преобразовать строку в dict escaping специальных символов в python
my_string = '''10.11.22.33|{"property1": "0", "property2": "1", "property3": "1", "property4": "1", "property5": "0"}
10.11.22.34|{"property1": "0", "property2": "0", "property3": "1", "property4": "1", "property5": "0", "property6": "0", "property7": "1", "property8": "0", "property9": "0", "property10": "1"}'''
Это код, который я попробовал:
d = dict(node.split('|') for node in my_string.split())
Однако, я получаю эту ошибку:
ValueError: dictionary update sequence element #1 has length 1; 2 is required
Так что упростило my_string на одну строку:
my_string = '10.11.22.33|{"property1": "0", "property2": "1", "property3": "1", "property4": "1", "property5": "0"}'
И использовал этот код для первого sp освещено строку:
wow = my_string.split('|')
выход:
['10.11.22.33', '{"property1": "0", "property2": "1", "property3": "1", "property4": "1", "property5": "0"}']
, приведенный выше список из двух элементов. Однако, когда я пытаюсь создать словарь из него, он терпит неудачу с этой ошибкой:
d = dict(wow)
выход:
ValueError: dictionary update sequence element #0 has length 11; 2 is required
Я не хочу, чтобы изменить значение - он должен быть сохранен как , Каков правильный способ получить эту строку в словаре, чтобы она выглядела так:
{'10.11.22.33': '{"property1": "0", "property2": "1", "property3": "1", "property4": "1", "property5": "0"}'}
Это Python 2.6.
Это работает и просто. Читайте где-нибудь, что раскол расщепляется на новых персонажах линии ... Должно быть, мечтал. Угадайте, что пришло время отдохнуть. – Lidia