【问题标题】:restore database from .bson file for python从 .bson 文件为 python 恢复数据库
【发布时间】:2018-10-21 16:21:27
【问题描述】:

我尝试使用以下命令读取 bson 文件:

import bson
input_dir='/path/to/file/dir/'
bson_stats =open(os.path.join(input_dir,'stats.bson'),'rb')
bson_stats = bson.loads(bson_stats.read())

当我尝试访问 bson_stats 时,我只得到了一行数据,而不是全部数据。

这是我第一次玩 bson 文件。我的问题是:

  • 如何访问 bson 文件中的全部数据?

链接到stats.bson 文件:

https://drive.google.com/file/d/1N71hRafOm_6xWNsUfxcr5Sm0fQwydd1a/view?usp=sharing

【问题讨论】:

  • 你怎么知道里面还有更多的数据?在这里可能不是问题,但是将您的open() 变量命名为bson_stats,这与您要保存数据的位置相同。可能不是一个好主意。如果您开始定期执行此操作,可能会发生冲突。例如遍历文件、循环等。您将替换您正在执行.read() 的句柄。再说一次,也许不在这里。但是一个坏习惯。
  • 问题与machine-learning 无关 - 请不要向标签发送垃圾邮件(已删除)。
  • @Torxed 这个命令是我的开始。我根本不知道如何从 bson 恢复数据。如果您有更好的想法,请随时提出建议!如果您想尝试,我有我的文件的链接。根据我获得文件的网站,我知道该文件有更多数据。此外,文件大小约为 24MB。谢谢。
  • @desertnaut Oups 抱歉。

标签: python database mongodb bson


【解决方案1】:

BSON (Binary JSON) Encoding and Decoding

>>> with open('stats.bson', 'rb') as f:
...     data = bson.decode_all(f.read())
...     print data
[{u'CodeGare': u'057', u'TrainEnRetard': 0, u'GareJour': u'2018-03-23_057', u'TotalTrains': 0, u'Date': u'2018-03-23', u'_id': ObjectId('5ab5a312d909c48f43e26cb5')}, {u'CodeGare': u'063', u'TrainEnRetard': 4, u'GareJour': u'2018-03-23_063', u'TotalTrains': 4, u'Date': u'2018-03-23', u'_id': ObjectId('5ab5a312d909c48f43e26cb8')}, {u'CodeGare': u'067', u'TrainEnRetard': 4, u'GareJour': u'2018-03-23_067', u'TotalTrains': 4, u'Date': u'2018-03-23', u'_id': ObjectId('5ab5a312d909c48f43e26cbb')}, {u'CodeGare': u'071', u'TrainEnRetard': 4, u'GareJour': u'2018-03-23_071', u'TotalTrains': 4, u'Date': u'2018-03-23', u'_id': ObjectId('5ab5a312d909c48f43e26cbe')}, {u'CodeGare': u'077', u'TrainEnRetard': 3, u'GareJour': u'2018-03-23_077', u'TotalTrains': 3, u'Date': u'2018-03-23', u'_id': ObjectId('5ab5a312d909c48f43e26cc1')}

【讨论】:

    猜你喜欢
    • 2012-12-18
    • 2021-11-08
    • 2021-12-12
    • 2012-06-11
    • 2016-12-03
    • 2010-11-15
    • 1970-01-01
    • 2022-10-05
    • 1970-01-01
    相关资源
    最近更新 更多