Python строка отступа к JSON - PullRequest
0 голосов
/ 13 марта 2020

В Python У меня есть строка в формате:

header:
    hello: world
    world: hello
    this:
        is: difficult
    this: 2

, которую я хотел бы преобразовать в JSON:

{ header: { hello: world, world: hello, this: { is: difficult} }}

Возможно ли это в эффективный способ?

Я пробовал с yaml.load(str), но это не может с этим справиться.

ОБНОВЛЕНИЕ

Я заменил табуляции пробелами, и это делает yaml не ошибочным.

Моя последняя проблема в том, что в моей исходной строке / объекте я могу иметь дубликаты ключей. Не знаю, как справиться с этим с помощью yaml, но это случайный порядок, поэтому я хотел бы сохранить все ключи или иметь ключ, содержащий объект, как приоритетное значение над ключами, содержащими простое целое число. Имеет смысл, есть ли способ справиться с этим?

Ответы [ 2 ]

0 голосов
/ 13 марта 2020
import yaml  # pip install pyyaml
import json

yaml_text = '''
header:
    hello: world
    world: hello
    this:
        is: difficult
'''
temp_dict = yaml.load(yaml_text)
json_text = json.dumps(temp_dict)

Я подумал, что вы можете преобразовать его в json строку. Вышеупомянутое решение работает на моей машине с Python версии 3.7.6 и PyYaml версии 5.3.

0 голосов
/ 13 марта 2020

YAML отлично работает для меня ...

test="""header:
    hello: world
    world: hello
    this:
        is: difficult"""

print(test)

'header: \ n привет: мир \ n мир: привет \ n это: \ n это: сложно'

import yaml
yaml.load(test)

{'header': {'hello': 'world', 'world': 'hello', 'this': {'is': 'hard'}}}

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