Преобразовать строку в формате словаря в словарь, используя python - PullRequest
0 голосов
/ 11 декабря 2019

У меня есть строка в формате словаря, например:

{'fossils': [{Synset('dodo.n.01'): {'of', 'is', 'out', 'someone', 'fashion', 
'whose', 'style'},Synset('fossil.n.02'): {'age', 'that', 'an', 'has', 'past', 
'from', 'excavated', 'plant', '(',')', 'and', 'animal', 'in', 'remains', 
'geological', 'soil', 'existed', 'impression', 'of', 'or', 'been', 'the', 'a'},
 Synset('fossil.a.01'): {'of', 'a', 'fossil', 'characteristic'}}], 
'disturbing': [{Synset('disturb.v.01'): {'me', 'This', 'upset', 'thought','book', 
'deeply','move', 'troubling', 'A'}, Synset('agitate.v.06'): {'of', 'or', 
'arrangement', 'the', 'position', 'change'}, Synset('touch.v.11'): {'my', '!', 
'touch', 'Do', 'tamper', 'with', 'CDs', "n't"}, Synset('interrupt.v.02'): {'of', 
'or', 'peace', 'tranquility', 'destroy', 'the', 'I', 'me', 'interrupt', 'Do', 
'reading', 'when', "'m", "n't"}}]}

Я хочу преобразовать это в словарь. Формат словаря:

{key: list of dictionaries as value}

Пожалуйста, помогите мне разобраться в этом

Спасибо

1 Ответ

0 голосов
/ 11 декабря 2019

у вас есть «Объекты» (называемые Synset). обычно вы можете сделать это с помощью json.loads (str), чтобы получить значение словаря. поскольку у вас есть объекты, вам нужно исправить это вручную (предварительно обработать строку перед json.loads), а затем выполнить последующую обработку, чтобы вернуть объекты.

edit: более того, у вас есть несколько типовпарантезов, которые могут затруднять работу при загрузке строки.

edit2: Конечно, есть и другой вариант (если ваш класс Synset известен и вы доверяете его источнику): import Synset # for swift conversion dict_val = eval(dict_like_str) Я также добавлю эти строки вмой оригинал

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...