Генерация Clojure EDN из Python с: символами
Я пытаюсь использовать EDN для связи между простым сервером Python и приложением в браузере, написанным с использованием ClojureScript.
Таким образом, сервер должен генерировать и возвращать фрагменты формата EDN для браузера.
Я установил https://github.com/swaroopch/edn_format который, похоже, является рекомендуемой библиотекой EDN для Python.
Но я хочу иметь возможность генерировать карту, которая использует символы Clojure для ключей. Например. {:a 1 :b 2}
Тем не менее, если я создаю словарь Python {"a":1, "b":2}
и передать его в функцию dumps, конечный EDN хранит ключи как строки, а не символы.
Очевидно, нет :symbols
в Python. Но есть ли способ убедить edn_format.dumps превратить в них строковые ключи словаря? Или есть лучшая библиотека edn для Python, которая может сделать это?
1 ответ
Вы можете использовать keyword_keys
аргумент:
edn_format.dumps({'a': 1}, keyword_keys=True)
# => {:a 1}
Или Keyword
конструктор:
edn_format.dumps({edn_format.Keyword('a'): 1})
# => {:a 1}