应该将文本文件中的“Date”格式作为Json读取,然后使用Python插入到MongoDB中?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了应该将文本文件中的“Date”格式作为Json读取,然后使用Python插入到MongoDB中?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1298字,纯文字阅读大概需要2分钟。
内容图文
我需要在我的代码中执行以下操作:
>从文本文件中读取数据
>将数据转换为Json
>将数据升级到MongoDB
以下是文本文件内容的外观示例:
{
"S": "someString" <- Type String when inerted in mongodb
"N": 123 <- Type Int32
"F": 12.3 <- Type Double
"D": ? <- Need to be Type DateTime when inerted in mongodb
}
我不知道我应该代替“?”所以当我在python中使用bson.json_util.loads函数时,它可以正确地将文本文件转换为Json,以后可以将其插入到mongoDB中.
以下是执行加载和插入的代码:
with open('data.txt') as f:
data = json_util.loads(f.read())
db[dbName][colName].update({'_id': id}, data, upsert=True,safe=True)
如果有人能举例说明如何格式化文件,我将不胜感激. (如果你的例子可以包含更复杂的Bson类型,比如类型“二进制”或“代码”,那也很好:))
解决方法:
Mongo对日期时间的表示是{“$date”:毫秒数 – 从epoch开始}.在你的例子中:
{
"S": "someString",
"N": 123,
"F": 12.3,
"D": {"$date": 1352540684243}
}
D将在写入mongo时生成日期时间字段.
见the documentation for mongo json extensions.
您还可以轻松扩展json_util来编写自己的扩展,例如,对于ISO格式的日期时间:
import json, dateutil.parser, bson.json_util
a = """{
"mydate": {"$isodate": "2012-11-01T20:19:55.782Z"}
}"""
def my_hook(dct):
if '$isodate' in dct:
return dateutil.parser.parse(dct['$isodate'])
return bson.json_util.object_hook(dct)
obj = json.loads(a, object_hook=my_hook)
内容总结
以上是互联网集市为您收集整理的应该将文本文件中的“Date”格式作为Json读取,然后使用Python插入到MongoDB中?全部内容,希望文章能够帮你解决应该将文本文件中的“Date”格式作为Json读取,然后使用Python插入到MongoDB中?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。