首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何逐行写EDN?(吐痰,散列图)

如何逐行写EDN?(吐痰,散列图)
EN

Stack Overflow用户
提问于 2016-02-18 11:41:31
回答 2查看 1.6K关注 0票数 0

我有这样的数据

代码语言:javascript
复制
tab = ({"123" data} {"456" data} ... 

(不管怎么说,这是一个懒散的hashmap序列)。

我想把它逐行写入edn文件中,所以我这样做了。

代码语言:javascript
复制
(map (fn[x] (spit "test.edn" x :append true)) tab)

问题是我想把这个放在档案里:

代码语言:javascript
复制
{"123" data}
{"456" data}

但它似乎是那样附加的

代码语言:javascript
复制
{"123" data}{"456" data}

有办法解决这个问题吗?我想我必须添加“换行符”,但是我不知道怎么做,因为输入不是字符串。

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-02-18 16:05:09

代码语言:javascript
复制
(doseq [x tab]
  (spit "test.edn" (prn-str x) :append true))

因此,对于tab中的每个项,将其转换为一个可读的字符串,后面跟着一个换行符,然后将该字符串附加到test.edn中。

出于以下几个原因,您不应该为此使用map

  1. map很懒,因此除非强制,否则不会打印整个序列。
  2. map保留了序列的头部,这将在这里浪费内存
票数 1
EN

Stack Overflow用户

发布于 2016-02-18 11:46:07

对不起,我终于找到了,希望它能帮助一些人博斯我没有在网上找到它(我的意思是没有简单的答案)。

代码语言:javascript
复制
(map (fn[x] (spit "test.edn" (str x "\n") :append true)) tab)

下午好。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35480498

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档