2016-10-22 76 views
0

我们有一个syslog-ng的服务器获取包含JSON在日志中MongoDB的日志,样本数低于:JSON调试运行:JSON到CSV解析

2016-10-17 19:54:12 f:local1.p:info h:10.133.126.79 prog:sharmongo-log m:sharmongo-log 2016-10-17T19:54:04.943+0330 I COMMAND [conn5573] command CLM.BillingAccount command: count { count: "BillingAccount", query: { $or: [ { billingAccount.customerCode: "C8088810719" } ] } } planSummary: COUNT_SCAN { billingAccount.customerCode: 1.0 } keyUpdates:0 writeConflicts:0 numYields:0 reslen:122 locks:{ Global: { acquireCount: { r: 2 } }, Database: { acquireCount: { r: 1 } }, Collection: { acquireCount: { r: 1 } } } protocol:op_query 216ms 

我们需要插入进来的日志到数据库,首先我需要将日志解析为CSV,我想编写一个python脚本来将日志记录更改为CSV。因为您可以看到日志的一部分是JSON(如MongoDB文档ant中所述,此girthub链接为JSON格式)。日志的JSON一部分是这样的:

command: count { 
    count: "BillingAccount", 
    query: { 
     $or: [{ 
      billingAccount.customerCode: "C8088810719" 
     }] 
    } 
} 
planSummary: COUNT_SCAN { 
    billingAccount.customerCode: 1.0 
} 
keyUpdates: 0 writeConflicts: 0 numYields: 0 reslen: 122 locks: { 
    Global: { 
     acquireCount: { 
      r: 2 
     } 
    }, 
    Database: { 
     acquireCount: { 
      r: 1 
     } 
    }, 
    Collection: { 
     acquireCount: { 
      r: 1 
     } 
    } 
} 
protocol: op_query 216 ms 

,但我看到了很多在它的错误,当我想用​​一个蟒蛇json库来解析它,我得到一个错误。我需要将它改为一种我不会再犯错的形式,首先我引用了每一个关键字,因为它们不是。但我又得到了以下错误:

enter image description here enter image description here

除了这些错误一个主要问题是,我得到了一个以上的JSON在日志中,这引起了我更多的错误,我需要知道,如果有一个python库来帮助我解析这个JSON。你有什么建议来解决这个问题?

+2

您需要将所有内容都包含在'{''}'中,以便它成为一个json对象。 –

回答

1
"command": "count" { 

是不是JSON,这可能是原因。

"command": "count", 
      { ...... 

这可能在JSON方面有意义。