繁体   English   中英

Python:将多行 json 字符串更改为单行

[英]Python: Change multi-line json String to single line

我必须将以下字符串传递给 python 命令

'[{
  "action": "DELETE",
  "is_enabled": true,
  "name": "qe_ta_rule_kYKco6_ObjectLifecyclePolicy",
  "object_name_filter": null,
  "time_amount": 1,
  "time_unit": "DAYS"
}]'

有没有办法替换所有换行符,以便 i 成为 1 行字符串

这不是一个有效的 python 字符串:

'[{
  "action": "DELETE",
  "is_enabled": true,
  "name": "qe_ta_rule_kYKco6_ObjectLifecyclePolicy",
  "object_name_filter": null,
  "time_amount": 1,
  "time_unit": "DAYS"
}]'

多行字符串应该是这样的:

'[{ \
  "action": "DELETE", \
  "is_enabled": true, \
  "name": "qe_ta_rule_kYKco6_ObjectLifecyclePolicy", \
  "object_name_filter": null, \
  "time_amount": 1, \
  "time_unit": "DAYS" \
}]'

如果这是来自 web,它可能是这样的: '[{ \n "action": "DELETE", \n...'

无论哪种方式,您都将替换像your_str.replace('\n', '')这样的新行

您可以使用jq来实现这一点:

来源 JSON:

[
  {"empid": "1", "empname": "E1", "empsal": "100"},
  {"empid": "2", "empname": "E2", "empsal": "200"},
  {"empid": "3", "empname": "E3", "empsal": "300"}
]

转型:

cat source.json | jq -c '.[]' > target.json

目标 JSON:

{"empid":"1","empname":"E1","empsal":"100"}
{"empid":"2","empname":"E2","empsal":"200"}
{"empid":"3","empname":"E3","empsal":"300"}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM