【问题标题】:Generating Clojure EDN from Python with :symbols使用 :symbols 从 Python 生成 Clojure EDN
【发布时间】:2018-06-22 21:32:58
【问题描述】:

我正在尝试使用 EDN 在简单的 Python 服务器和使用 ClojureScript 编写的浏览器内应用程序之间进行通信。

所以服务器需要为浏览器生成并返回EDN格式的块。

我已经安装了https://github.com/swaroopch/edn_format,这似乎是推荐用于 Python 的 EDN 库。

但我希望能够生成一个使用 Clojure 符号作为键的映射。例如。 {:a 1 :b 2}

但是,如果我创建一个 Python 字典 {"a":1, "b":2} 并将其传递给 dumps 函数,最终的 EDN 会将键保留为字符串,而不是符号。

显然 Python 中没有 :symbols。但是有没有办法说服 edn_format.dumps 将字典字符串键变成它们?或者有没有更好的 Python edn 库可以做到这一点?

【问题讨论】:

    标签: python clojurescript edn


    【解决方案1】:

    您可以使用keyword_keys 参数:

    edn_format.dumps({'a': 1}, keyword_keys=True)
    # => {:a 1}
    

    或者Keyword构造函数:

    edn_format.dumps({edn_format.Keyword('a'): 1})
    # => {:a 1}
    

    【讨论】:

      猜你喜欢
      • 2014-06-14
      • 1970-01-01
      • 2017-09-18
      • 2021-05-07
      • 2020-11-05
      • 1970-01-01
      • 1970-01-01
      • 2013-08-09
      • 1970-01-01
      相关资源
      最近更新 更多