Как читать экспортированный в Mongodb Json в панде - PullRequest
0 голосов
/ 09 ноября 2018

Я использую следующий код для экспорта json из запроса mongoDB:

 querywith open(r'/Month/Applications_test.json', 'w') as f:
for x in dic:
    json.dump(x, f, default=json_util.default)

Это работает хорошо и возвращает следующий json:

{
  "_class": "Application",
  "_id": "123",
  "applicationTimeStamp": {
    "$date": 1541466008000
  },
  "createdDateTime": {
    "$date": 1541466008084
  }
}
{
  "_class": "Application",
  "_id": "124",
  "applicationTimeStamp": {
    "$date": 1540080000000
  },
  "createdDateTime": {
    "$date": 1540080000096
  }
}
{
  "_class": "Application",
  "_id": "125",
  "applicationTimeStamp": {
    "$date": 1540080000000
  },
  "createdDateTime": {
    "$date": 1540080000097
  }
}

Я использую следующий код панд, чтобы попытаться прочитать его:

data_df = pd.read_json(r'/Month/Applications_test.json', lines = True)

Я получаю следующую ошибку:

ValueError: Unexpected character found when decoding array value (2)

То, что я хочу, это информационный фрейм панды, который имеет:

_class      | _id | applicationTimeStamp | createdDateTime
Application | 123 | 10/07/2018           | 10/07/2018
Application | 124 | 10/07/2018           | 10/07/2018
Application | 125 | 10/07/2018           | 10/07/2018

Как я могу прочитать json выше в кадре данных панд?

Спасибо!

1 Ответ

0 голосов
/ 11 ноября 2018

вы должны использовать read_json следующим образом:

df = pd.read_json(path_or_buf="file_path\json.txt",  typ='frame')

возвращает фрейм данных как:

            _class  _id  applicationTimeStamp  createdDateTime
$date  Application  123         1541466008000    1541466008084

или

        _class            ...                      createdDateTime
0  Application            ...             {'$date': 1541466008084}
1  Application            ...             {'$date': 1540080000096}
2  Application            ...             {'$date': 1540000000097}

тогда вы можете конвертировать метку времени.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...