簡體   English   中英

如何在pandas數據幀中讀取mongodb導出的Json

[英]How to read mongodb exported Json in pandas dataframe

我正在使用以下代碼從mongoDB查詢中導出json:

 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
  }
}

我正在使用以下pandas代碼嘗試閱讀它:

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

我收到以下錯誤:

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

我想要的是一個pandas數據幀:

_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讀入熊貓數據幀?

謝謝!

你必須以這種方式使用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}

那么你可以轉換時間戳。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM