基于文本的数据格式,支持多行字符串

gue*_*tli 15 python format json

我搜索支持多行字符串的基于文本的数据格式.

JSON不允许多行字符串:

>>> import json
>>> json.dumps(dict(text='first line\nsecond line'))
'{"text": "first line\\nsecond line"}'
Run Code Online (Sandbox Code Playgroud)

我想要的输出:

{"text": "first line
second line"}
Run Code Online (Sandbox Code Playgroud)

这个问题是关于输入和输出的.数据格式应该可以使用vi,emacs或notepad等编辑器进行编辑.

我不在乎是否使用了简单的引号"或tripple引号(如在Python中)""".

是否有一个易于人类可读的文本数据交换格式支持这个?

用例

我想用多行字符串编辑数据vi.如果数据是json格式,这不好玩.

vsm*_*kov 21

我认为你应该考虑YAML格式.它支持块符号是能够保持换行符这样

data: |
   There once was a short man from Ealing
   Who got on a bus to Darjeeling
       It said on the door
       "Please don't spit on the floor"
   So he carefully spat on the ceiling
Run Code Online (Sandbox Code Playgroud)

还有很多解析器适用于任何类型的编程语言,包括python (即pyYaml).

还有一个巨大的优势,任何有效的JSON都是YAML.