当前位置: 首页 > 知识库问答 >
问题:

试图将两个json数据放入python列表,但收到错误消息

刘德义
2023-03-14

我使用pymongo从MongoDB数据库获取数据,然后将光标转换为JSON并获取特定数据。

JSON数据格式,详细数据

[{'Column 0': 13.57557,
  'Column 1': 12.656892,
  'Column 2': -1.424328,
  'Column 3': -2.302774,
  'Column 4': 404.9216},
 {'Column 0': 13.844373,
  'Column 1': 12.61062,
  'Column 2': -1.435429,
  'Column 3': -1.964423,
  'Column 4': 404.97818},
 {'Column 0': 13.996934,
  'Column 1': 12.669785,
  'Column 2': -1.384147,
  'Column 3': -1.830788,
  'Column 4': 405.187378},
 {'Column 0': 14.060876,
  'Column 1': 12.755087,
  'Column 2': -1.378407,
  'Column 3': -2.02023,
  'Column 4': 404.892548},
 {'Column 0': 14.095317,
  'Column 1': 12.877163,
  'Column 2': -1.363435,
  'Column 3': -2.072163,
  'Column 4': 404.698822}]

JSON数据格式;结果

[{'_id': ObjectId('606702b2b1e51ef27782dcf5'),
  'FileName': 'ex.csv',
  'BriefInfo': '',
  'Size': '193.9KB',
  'UserName': '12795757',
  'data': [{'Column 0': 13.57557,
    'Column 1': 12.656892,
    'Column 2': -1.424328,
    'Column 3': -2.302774,
    'Column 4': 404.9216},
   {'Column 0': 13.844373,
    'Column 1': 12.61062,
    'Column 2': -1.435429,
    'Column 3': -1.964423,
    'Column 4': 404.97818},
   {'Column 0': 13.996934,
    'Column 1': 12.669785,
    'Column 2': -1.384147,
    'Column 3': -1.830788,
    'Column 4': 405.187378},
   {'Column 0': 14.060876,
    'Column 1': 12.755087,
    'Column 2': -1.378407,
    'Column 3': -2.02023,
    'Column 4': 404.892548},
   {'Column 0': 14.095317,
    'Column 1': 12.877163,
    'Column 2': -1.363435,
    'Column 3': -2.072163,
    'Column 4': 404.698822}]

代码如下:我试图将详细的_数据和结果放入python列表中,然后再次将其转换为JSON。但我有一个错误:

ObjectId类型的对象不可JSON序列化

为什么会发生这种错误?

import json
import pymongo
from bson.json_util import dumps
from bson.json_util import loads
import random
import pandas as pd
import numpy as np
import csv
client = pymongo.MongoClient('username:password')
db = client.datasets


result = db.files.find({"FileName":"ex.csv","UserName":"12795757"})

result = loads(dumps(result))
detailed_data = result[0]["data"]
json.dumps([detailed_data, result])

共有1个答案

薛利
2023-03-14

您应该使用json。encode(result,cls=jsonecoder)因为mongodb结果包含其他元数据以及结果。i、 它看起来像JSON,但不是JSON。

 类似资料:
  • 如何获取多个列表并将它们作为不同的列放在python数据框架中?我尝试了这个解决方案,但遇到了一些麻烦。 尝试1: 有三个列表,将它们压缩在一起,并使用 只生成一列 尝试2: 产生一行乘三列(如上所述)或者如果我转置它是三行和一列 如何通过3列(三个列表)数据帧获得100行(每个独立列表的长度)?

  • 下面是我保存在两个变量中的两个数据: 其代码: 我认为这与index_col=0参数有关。但我不知道在不保存它的情况下修复它,这并不重要,但我不得不这样做是一种烦恼。

  • 我搜索了每一个这样的问题,即使是密切相关的问题,但我尝试过的一切都不起作用。有什么想法吗?我可以发布调试日志,但它很长,我不能让它正确格式化。让我知道如果这会有帮助。

  • 我正试图将数据从Excel导入到SQL Server表中,但遇到了这个错误。你能建议如何避免这些吗?

  • 我是新的Python和工作在我的第一个项目。我试图让我的代码从一个电子表格中复制数据列,并将其附加到当前存在于主表中的数据中。我能够捕获每个工作表中的数据,并创建一个新的主列表,该列表结合了两个数据集,但我很难将其写入文件。当我测试打印组合列表时,它们看起来是正确的,但是当我添加代码将列表写入文件时,它会挂起。 你能提供的任何帮助都会非常有用! 下面是我的代码。这是我得到的错误 Traceback

  • error msg:“您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,以了解在“?,?)”附近使用的正确语法。”