2018-07-21 python -m json.tool 在bash下有很多局限

  1. awk.json 只会被处理第一行。
    如果第一行是json但是包含了小括号,也会报错 No JSON object could be decoded。

这就是 python -m json.tool 的局限!

python -m json.tool awk.json

  1. 使用whil read来解决原来只有第一行被读取的问题。
    但是任何一行的json里包含了小括号,还是会报错 No JSON object could be decoded。其他行能解析的会被解析格式化。

cat awk.json |while read line;do echo "$line"|python -m json.tool;done

  1. 下面是从html文件日志中筛选出只包含json内容的行,都是以 { 开头的行:

cat cpctest_cpctestcode1.txt_2018-07-19T16-16-47.313.html|while read line;do echo "$line"|gawk '$0 ~ /^\{/{print $0}' >> awk.json;done

  1. 这个是基本一步到位的,只打算显示json格式化后的结果。
    但是含有小括号的行在bash下执行下面的命令还是无法被json格式化:

cat cpctest_cpctestcode1.txt_2018-07-19T16-16-47.313.html|while read line;do echo "$line"|gawk '$0 ~ /^\{/{print $0}'|python -m json.tool;done

  1. 并未实现的效果,一个文档某些行是json数据,达到非json数据原样输出,json数据格式化的效果。考虑了awk的模式匹配来判断,然后调用系统命令格式化json数据。但是也会有各类问题,所以没有搞这个了。

  2. 实践发现上述文件是从cpc的mongo导出的json数据,其中的_id和NumberLong在json viewer下也提示报错,所以认为这一点是影响python解析json的原因之一。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.创建文件夹 !/bin/sh mkdir -m 777 "%%1" 2.创建文件 !/bin/sh touch...
    BigJeffWang阅读 13,473评论 3 53
  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 11,224评论 0 10
  • 基础命令 主要的命令和快捷键 Linux系统命令由三部分组成:cmd + [options]+[operation...
    485b1aca799e阅读 4,795评论 0 0
  • 本章主要学习内容awk介绍 awk基本用法 awk变量 awk格式化 awk操作符 awk条件判断 a...
    楠人帮阅读 5,062评论 0 8
  • Linux指令中文说明传送入口 整理自Linux指令中文说明 文本和数据进行处理的编程语言awk 是一种编程语言,...
    释闲人阅读 6,644评论 1 6

友情链接更多精彩内容