JSON中的多行字符串

我正在用JSON格式编写一些数据文件,并希望将一些非常长的字符串值分成多行。 使用python的JSON模块我得到了很多错误,无论我使用\\\\n作为转义。

是否可以在JSON中使用多行字符串? 这主要是为了视觉上的舒适,所以我想我可以在我的编辑器中翻开自动换行,但我只是有点好奇......


#1楼

这是一个非常古老的问题,但我在搜索时遇到了这个问题,我想我知道问题的根源。

JSON不允许在其数据中使用“真正的”换行符; 它只能逃脱换行。 请参阅@YOU答案 。 根据这个问题,看起来你试图以两种方式逃避Python中的换行:使用行继续符( "\\" )或使用"\\n"作为转义。

但请记住:如果你在python中使用字符串,特殊的转义字符( "\\t""\\n" )将被转换为REAL控制字符! "\\n"将替换为表示换行符的ASCII控制字符,该字符恰好是JSON中非法的字符。 (至于续行字符,它只需要换行。)

所以你需要做的是防止Python转义字符。 您可以通过使用原始字符串(将r放在字符串前面,如r"abc\\ndef" ,或者在换行符前面加一个额外的斜杠( "abc\\\\ndef" )来完成此操作。

以上两种方法都不会将"\\n"替换为真正的换行符ASCII控制字符,而是将"\\n"作为两个文字字符,然后JSON可以将其解释为换行符。


#2楼

查看规格 ! JSON语法的char生成可以采用以下值:

  • any-Unicode-character-except- " -or- \\ -or-control-character
  • \\"
  • \\\\
  • <
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值