Отладка JSON: синтаксический анализ JSON в CSV

#python #json #mongodb #csv

#python #json #mongodb #csv

Вопрос:

У нас есть сервер системного журнала, который получает журналы Mongodb, содержащие JSON в журнале, пример журнала приведен ниже:

 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 и по этой ссылке на 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 библиотеки python, я получаю ошибку. Мне нужно изменить его на форму, которая больше не выдает мне ошибку, сначала я процитировал каждый ключ, поскольку их не было. но снова я получил следующие ошибки:

введите описание изображения здесь
введите описание изображения здесь

помимо этих ошибок, одна из основных проблем заключается в том, что я получил более одного JSON в журнале, что вызвало у меня больше ошибок, мне нужно знать, существует ли библиотека python, которая поможет мне разобрать этот JSON. Что вы предлагаете для решения этой проблемы?

Комментарии:

1.Вам нужно обернуть все в { } , чтобы это стало объектом json.

Ответ №1:

 "command": "count" {
  

Это не JSON, и это, вероятно, может быть причиной.

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

Это может иметь смысл с точки зрения JSON.