2016-10-22 41 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方面有意義。