2016-10-22 5 views
0

Nous avons un serveur syslog-ng qui obtiennent les journaux MongoDB qui contiennent JSON dans le journal, le journal de l'échantillon est ci-dessous:JSON debuging: JSON CSV analyse syntaxique

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 

Nous avons besoin d'insérer les journaux de Incomming au base de données, tout d'abord, j'ai besoin d'analyser le journal au format CSV, je veux écrire un script python pour modifier les journaux incomming au format CSV. Comme vous pouvez le voir, une partie du journal est JSON (comme décrit dans la documentation MongoDB et ce lien girthub est au format JSON). la partie JSON des journaux sont comme ceci:

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 

mais je vois beaucoup d'erreurs dans ce que quand je veux analyser avec une bibliothèque python json je reçois une erreur. J'ai besoin de le changer à une forme que je ne me donne plus une erreur, d'abord j'ai cité chaque clé comme ils ne l'étaient pas. mais encore une fois je suis arrivé les erreurs suivantes:

enter image description here enter image description here

en plus un problème majeur de ces erreurs est que je suis arrivé plus d'un JSON dans le journal qu'il m'a fait plus d'erreurs, je dois savoir s'il y a une bibliothèque python pour m'aider à analyser ce fichier JSON. Que proposez-vous pour résoudre ce problème?

+2

Vous devez envelopper tout dans '{' '}' pour qu'il devienne un objet json. –

Répondre

1
"command": "count" { 

N'est pas JSON et cela pourrait probablement être la raison.

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

Cela peut être logique en termes de JSON.