【问题标题】:Unable to use JSON file using python无法使用 python 使用 JSON 文件
【发布时间】:2015-01-24 10:10:48
【问题描述】:
{
  "id": "APA91bE9N6D9Tp79gv1kUgWLhsCmbKPKJQlzgtr1iGKlL5249bzD5DxySBiaIzDmk7rOAdrWcNcP0ZxPnaj7e6Esc _iGIYJlDte-E1pMO9GME4QufgdQQOIccM2tExMd9L9RsQthR3160KbQeRmtfxW6gvuPXYN0zw",
  "platform": "android",
  "user": ObjectId("545b2833b21e898413de9314"),
  "_id": ObjectId("545b5e76d6be01755625b284"),
  "createdAt": Date(1415274102856),
  "__v": 0
}{
  "__v": 0,
  "_id": ObjectId("545b67c4d6be01755625b2c1"),
  "createdAt": Date(1415276484321),
  "id": "APA91bFRxirYHIko33D1LiHODpBd77IlRhebK4tMRWecFxb5E6nfWSMFarr5mlwmY9bPQP56DGP7cnli4_jOrS8Ynn3Y9w9uaRoESoEPglqR-rA-3phsh8UtSxMC5lNoOqIrohz3hBjzzpCH_vExwo6B5yV6Mb8jyg",
  "platform": "android",
  "user": ObjectId("545b69a5d6be01755625b2d2")
}

这是 JSON 文件的内容。

我用于导入的代码是:

import json

with open("test.json") as json_file:
    json_data = json.load(json_file)
    print(json_data)  

【问题讨论】:

  • 这不是 JSON:"user" : ObjectId("545b69a5d6be01755625b2d2" ).
  • 我也想知道。但这就是我在 mongoDB 中将 BSON 文件转储为 JSON 格式时得到的结果。如果这是问题,我会尽力解决。谢谢
  • 您需要为我们解释您的问题,如果您希望我们帮助您!!!同样如上所述,它不是有效的JSON 文件!
  • 看起来像MongoDB 查询结果。你必须处理ObjectIdDate等。
  • 如果这是 MongoDB 为您提供的“JSON”,那么其他人会偶然发现同样的问题,如果您在搜索中添加术语“MongoDB”,您应该能够找到解决方案。

标签: python json


【解决方案1】:

正如@Puffin 指出的,如果您将 MongoDB BSON 转储到 JSON 并访问它,则需要处理 ObjectId、Date 等。

如果可能,请使用pymongo 直接从 Python 访问 MongoDB,而不是转储到 JSON 中并访问数据。

【讨论】:

    【解决方案2】:

    您的第一个字符串不是有效的 JSON。无法将其直接摄取到 JSON 解析器。我要做的是编写一个预处理器,它将ObjectIdDate 等非 JSON 元素扩展为例如字符串。这个answer 中的东西。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-08
      • 2015-04-11
      • 2014-08-19
      • 1970-01-01
      • 2021-11-04
      • 2019-10-03
      相关资源
      最近更新 更多