gpt4 book ai didi

python - 如何在 rethinkdb 中制作涉及字符串字段的映射?

转载 作者:太空宇宙 更新时间:2023-11-03 18:30:37 25 4
gpt4 key购买 nike

我想修改表中所有内容的时间戳。看来我应该能够使用 for_each 但我不知道如何使用。

基于documentation ,我认为我的函数应该返回一个写入对象。但我在处理涉及字符串的事情时遇到了麻烦。这是一个非常简单的例子:

r.expr([{'time':"2014"}]).map(lambda x: datetime.strptime(x['time'],'%Y'))

这给了我一个错误:

TypeError: must be string, not GetField

有趣的是,以下作品:

map(lambda x: datetime.strptime(x,'%Y'), 
r.expr([{'time':"2014"}])
.map(lambda x: x['time'])
.run(conn))

我做错了什么?

最佳答案

datetime.strptime 是一种 Python 方法,而不是 ReQL 方法,因此您无法将其发送到服务器。

当您在查询上调用 run 时,驱动程序将保存使用 ReQL 对象调用时 lambda 函数的输出。当它命中 datetime.strptime(x['time '],'%Y')) 您将收到错误,因为您使用无效参数调用 datetime.strptime

如果您有兴趣了解更多,可以看看:http://www.rethinkdb.com/blog/lambda-functions/

您可能希望将年份存储为数字。这样,我认为您正在寻找的查询是

r.expr([{'time':2014}]).map(lambda x: r.time(x['time'], 1, 1, '+00:00')

如果你想保留一个字符串,你可以这样做

r.expr([{'time':2014}]).map(lambda x: r.time(x['time'].coerce_to("NUMBER"), 1, 1, '+00:00')

关于python - 如何在 rethinkdb 中制作涉及字符串字段的映射?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22438406/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com