我使用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])
您应该使用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服务器版本对应的手册,以了解在“?,?)”附近使用的正确语法。”