#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.