Clojure:将哈希映射键字符串转换为关键字?

2024-04-13

我使用 Aleph 从 Redis 提取数据:

(apply hash-map @(@r [:hgetall (key-medication id)]))

问题是这些数据返回时带有键字符串,例如:

({"name" "Tylenol", "how" "instructions"})

当我需要它时:

({:名称“泰诺”,:如何“说明})

我之前通过以下方式创建了一张新地图:

{ :name (m "名称"), :how (m "如何")}

但这对于大量密钥来说效率很低。

如果有一个函数可以做到这一点?或者我必须循环遍历每个?


您还可以使用clojure.walk库以通过该功能达到所需的结果keywordize-keys

(use 'clojure.walk)
(keywordize-keys {"name" "Tylenol", "how" "instructions"})
;=> {:name "Tylenol", :how "instructions"}

这也将递归地遍历映射,因此它也会对嵌套映射中的键进行“关键字化”

http://clojuredocs.org/clojure_core/clojure.walk/keywordize-keys http://clojuredocs.org/clojure_core/clojure.walk/keywordize-keys

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Clojure:将哈希映射键字符串转换为关键字? 的相关文章

  • 为什么使用关键字或符号作为函数从地图中查找值有效?

    引用自Clojure 的乐趣 第 4 3 1 节 由于关键字是自我评估的并提供快速的相等性检查 因此它们几乎总是在映射键的上下文中使用 使用关键字作为映射键的一个同样重要的原因是它们可以用作函数 以映射作为参数来执行值查找 def popu
  • Clojure 中的相互递归定义

    如何在 Clojure 中进行相互递归定义 下面是 Scala 中使用递归定义查找素数的代码 val odds Stream Int cons 3 odds map 2 val primes Stream Int cons 2 odds f
  • 如何在 Clojure 中处理大型二进制数据?

    如何在 Clojure 中处理大型二进制数据文件 我们假设数据 文件大约为 50MB 小到足以在内存中处理 但不是简单的实现 以下代码正确地从小文件中删除 M 但它会抛出OutOfMemoryError对于较大的文件 如 6MB defn
  • Clojure:避免埃拉托斯特尼筛中的堆栈溢出?

    这是我在 Clojure 中实现的埃拉托斯特尼筛法 基于 SICP 流课程 defn nats from n iterate inc n defn divide p q zero rem q p defn sieve stream lazy
  • 为什么我不能将 Clojure 的 :^const 与 Java 字节数组一起使用?

    Using lein repl使用 Clojure 1 4 0 我可以定义一个 constJava 字节数组的 但我不能用它做任何事情 user gt def x byte array map byte 0 1 2 3 user x use
  • clojure 的 emacs slime-connect 版本不会查找 $CLASSPATH

    我需要将 clojure 函数与 slime connect 一起使用 我将所有库都放在 CLASSPATH 中 据我了解这个问题 https stackoverflow com questions 3376840 clojure clas
  • fn 和 fn* 有什么区别?

    在 Clojure 中 fn 和 fn 有什么区别 当我在语法中引用使用 宏创建的函数时 我看到 fn 例如 在 REPL 中 user gt inc fn p1 342 343 auto clojure core inc p1 342 3
  • 如何将 CORS 添加到 compojure-api 应用程序?

    如何将 CORS 添加到此代码片段 def app api swagger ui docs spec swagger json GET route a a GET route b b GET route c c 我想用https githu
  • 为从 nginx 反向代理转发的请求添加唯一 id

    我们运行 nginx 作为反向代理 将请求转发到运行 Compojure 的 Clojure 应用程序 Compojure 是一个封装 Jetty 的库 为我们的应用程序提供服务 Web 请求的能力 目前 我们捕获 nginx 和 Cloj
  • 这两个 clojure 函数之间有什么区别和问题?

    对于课程项目的一部分 我正在实现一个函数来从文件中读取一些数据并根据该文件创建图形结构 一整天我问了几个问题 结果就是这样 下面是一个可以正常工作的函数 它首先以惰性序列的形式读入文件 然后循环解析每一行并将其打印出来 defn print
  • 枚举和 Clojure

    在Java C世界中 人们经常使用枚举 如果我使用的是使用枚举的 Java 库 我可以在它们和关键字之间进行转换 例如 使用 java lang Enum valueOf e aget Ljava lang Enum e getEnumCo
  • Scala - Java = ? (或者 Clojure - Java = ?)

    开发人员可以在不懂 Java 的情况下使用 Scala 吗 开发人员可以在不懂 Java 的情况下使用 Clojure 吗 注意 例如 我是一名 C 开发人员 我在不了解任何 VB 的情况下使用 NET 当然 WF 4 0 使用 VB 进行
  • Leiningen 在构建可用的 uberjar 时遇到问题

    我们正在尝试与 Leiningen 一起构建我们的 Clojure 项目 我们通过执行以下操作成功创建了 uberjar 前提条件 project clj 文件列出了依赖项 main my project core在项目 clj中 core
  • Clojure 宏expand

    Why does macroexpand arm getHand getFinger 扩展到 arm getHand getFinger while macroexpand gt arm getHand getFinger 扩展到 getF
  • Clojure:只能从尾部位置重复

    我正在尝试递归地反转列表 但是我得到了Can only recur from tail position运行时 这到底意味着什么 如何改进我的代码才能使其正常工作 defn recursive reverse coll loop coll
  • 如何编写 Clojure 宏来从字符串创建正则表达式?

    我正在创建一个方便的宏 部分便利在于可以仅使用字符串来指定正则表达式 而不是使用 re 表示法 我无法弄清楚的一部分是如何让宏获取字符串并将其重写为 Clojure 正则表达式 例如 生成 re 符号 我认为这是一个语法 转义问题 我的第一
  • 宏内调用函数和宏的区别?

    我的难题是以下示例 defmacro macro1 x println x defn func1 x println x defmacro macro2 x macro1 x func1 x defmacro macro3 x func1
  • 什么是 fn* 以及 Clojure 如何引导?

    The Clojure core 的来源 https github com clojure clojure blob master src clj clojure core clj似乎假设预先存在fn 这是在哪里定义的 引导程序还需要什么
  • 确保 Clojure 中只有一个服务实例正在运行/启动/停止的规范方法?

    我正在用 Neo4j 支持的 Clojure 编写一个有状态服务器 它可以服务套接字请求 例如 HTTP 当然 这意味着我需要能够从该服务器内启动和停止套接字服务器 在设计方面 我希望能够在此服务器中声明一个 服务 并启动和停止它 我在 C
  • 从不带破折号的字符串创建 UUID

    如何从不带破折号的字符串创建 java util UUID 5231b533ba17478798a3f2df37de2aD7 gt uuid 5231b533 ba17 4787 98a3 f2df37de2aD7 tl dr java u

随机推荐

  • 是否可以在 C++ 中使用初始化列表设置数组的特定成员?

    我知道您可以使用初始化列表来初始化整个数组 如下所示 struct s int a 1 s int b a b 但是是否可以设置一个特定成员的值 因为这 struct s int a 1 s int b a 0 不起作用并抛出两个错误 ex
  • iOS 应用程序安装在设备上进行测试后可以继续运行多长时间?

    使用Xcode将iOS应用程序安装到设备上后 在设备上进行测试 设备断开连接后应用程序会继续运行多长时间 根据个人测试 如果我使用 Xcode 中的 Run 命令部署应用程序 然后拔下 USB 电缆 通常会在几秒钟内终止设备上的应用程序 这
  • Pandas 按行查找第一个 nan 值并返回列名

    我有一个像这样的数据框 gt gt df1 pd DataFrame A 1 2 3 4 5 B 1 1 1 1 1 C c A1 None c3 None D d0 B1 B2 None B4 E A None S None S F 3
  • 在 JAXB 编组中使用 BigDecimal

    我有一个带有 JAXB 字段注释的 REST Web 服务 例如 XmlAccessorType XmlAccessType PROPERTY public class MyClass private BigDecimal sum gett
  • Xcode8.0 Beta 6 - 无法从设备读取

    我刚刚将 Xcode 8 0 从 beta 4 升级到 beta 6 当尝试在我的设备上构建应用程序时 我收到此消息 无法从设备读取 有什么想法可能是什么问题吗 这是错误 当符号缺失 通常 当您的设备版本高于 Xcode 例如 iOS 10
  • 检查 Tomcat 7 版本 linux

    如何检查 RHEL 上安装的 tomcat 7 版本 我查看了 bin 目录 找不到 version sh 您可以使用以下 scriptlet 发布 jsp Or grep 卡特琳娜 out对于这样的行 INFO Starting Serv
  • Microsoft 是否更改了随机默认种子?

    今天 我在 NET Core中做了一些测试 发现了一些有趣的事情 在 NET Framework 4 之前 Random used Environment TickCount 但现在我相信这已经改变了 考虑以下代码 while true R
  • 为什么我在调用 RoleEnvironment.GetConfigurationSettingValue("MYKEY") 时收到 SEHException?

    我正在尝试打电话RoleEnvironment GetConfigurationSetting SOMEKEY 像这样 public partial class AzureBasePage System Web UI Page protec
  • 错误:没有适合安装应用程序的设备

    我将一个应用程序上传到应用程序商店 但是 当我单击 安装 时 看不到我的设备 没有显示符合应用程序安装条件的设备 清单如下所示
  • 如何使用我的 xampp 服务器以便外部网络中的每个人都可以访问它

    我现在已经遇到这个问题一个多星期了 我正在我的计算机上运行我的世界服务器 因此我使用 no ip org 来获得 固定 IP 我转发了服务器的所有端口 我的朋友可以毫无问题地访问 后来我想我可以做一些统计数据之类的小事 所以我安装了xamp
  • TeamCity:向非注册用户发送电子邮件通知

    是否可以为未在 TeamCity 中注册的 VCS 用户设置 TeamCity 电子邮件通知 VCS 用户名是电子邮件的第一部分 vasily pupkin gt 电子邮件受保护 cdn cgi l email protection Jen
  • 如何在 Android Studio 中更新 Kotlin.Runtime

    Windows 10 Android Studio 3 0 1 刚刚启动它并收到 有新版本可用 更新吗 我更新了 现在我得到 过时的 Kotlin Runtime 多个库中的 Kotlin 运行时版本已过时 后跟长 URL 所以我需要更新
  • Angular2 - 是否可以使用选择器名称获取组件类名称

    是否可以使用 Angular 2 中的选择器名称获取组件类名称或组件引用 Component selector selector 1 template h1 Hello h1 export class Component1 Componen
  • 在 JSON 对象中嵌入文件附件

    是否可以将文件附件嵌入到 JSON 对象中 我有一个 HTML 表单 其中有几个文本字段输入和一个文件附件 我想将包含所有这些表单数据 包括文件附件 的 JSON 对象发送到服务器 Java 中有没有特定的库可以做到这一点 你能给出可能的解
  • p4和git之间有双向桥吗?

    是否有一个好的 可靠且自动化的 方法来为多个用户在 perforce 和 git 之间移动 git 更改 git p4 似乎可以很好地处理单用户情况 但我正在寻找多用户选项 目前 我们正在从多种不同的源代码控制系统转向单一的源代码控制系统
  • 在 iPhone 应用程序中使用 libxml2 解析 xml 文件的教程或示例代码

    我只想要一个演示在 Iphone 中使用 libXml2 解析 XML 文件的教程 我找到了关于 TouchXML 和其他的教程 但 Libxml2 的教程不一样 如果可以的话请帮忙 Apple 有一个示例 iPhone 项目 它使用 NS
  • Gradle 依赖版本“+”符号

    我试图了解 Gradle 如何处理带有 号的依赖版本 如示例 8 1 所示 http www gradle org docs current userguide artifact dependency tutorial html http
  • 协议实现的问题

    我想要实现的是UITextField将单词视为字符 具体来说 我试图将数学表达式 sin 作为一个字符 我想通过实现我自己的 UITextInputDelegate 来解决这个问题 但是 当我实现或采用此协议时 该协议中的四个必需函数永远不
  • 如何为 QTimeEdit 提供自动更改?

    我的对话框上有一个 QTimeEdit 小部件 我想提供某种自动更改 如果光标位于分钟部分并且时间为 04 59 则下次单击向上箭头会将时间更改为 5 00 怎么做 我看到有人提到 AutoAdvance 属性 但我认为它已经过时了 因为我
  • Clojure:将哈希映射键字符串转换为关键字?

    我使用 Aleph 从 Redis 提取数据 apply hash map r hgetall key medication id 问题是这些数据返回时带有键字符串 例如 name Tylenol how instructions 当我需要