gpt4 book ai didi

python - 如何重命名连接结果右侧的所有键以添加一个值?

转载 作者:太空宇宙 更新时间:2023-11-04 05:40:49 24 4
gpt4 key购买 nike

我有以下连接:

r.db("public").table("police_internal_affairs_allegations").eq_join("organization_id", r.db("public").table("organizations")).run()

示例行是:

{u'right': {u'id': u'2a5e2e3d-275a-426e-9ecd-0bd5601bff6b', u'name': u"King County Sheriff's Office"}, u'left': {u'': u'3896', u'IIU #': u'IIU2012-158', u'Occurred date': u'14-Sep-12', u'Directive': u'03.00.020-PERFORMANCE STANDARDS', u'Action taken': u'', u'Date hired': u'2-Aug-93', u'Employee Type (snap)': u'Employee Sworn', u'id': u'0002ec82-450b-4686-b7c9-9b15d18e7ed8', u'ID number': u'3896', u'Finding date': u'6-Dec-12', u'organization_id': u'2a5e2e3d-275a-426e-9ecd-0bd5601bff6b', u'First name': u'Mark', u'Incident type': u'Inquiry', u'Finding': u'Exonerated', u'CAD/Incident No': u'12-217028', u'Last name': u'Sigurdson'}}

我希望右侧的键以 organization_ 开头,然后我将执行 zip()

我可以用 Python 做到这一点(见下文),但我想在 RethinkDB 中做到这一点。

modified_joined_data = []
for data in joined_data:
d = {}
d.update(data['left'])
new_right_side = data['right'].items()
new_right_side = dict([('organization_'+item[0], item[1]) for item in new_right_side])
d.update(new_right_side)
modified_joined_data.append(d)

我找到了一半的解决方案:

joined_data = list(r.db("public").table("police_internal_affairs_allegations").eq_join("organization_id", r.db("public").table("organizations")).map({"right":{
"organization_id": r.row["right"]["id"],
"organization_name": r.row["right"]["name"]
}, "left": r.row["left"]}).zip().run())

我想要一个不需要我拼出右手边的版本。

最佳答案

我认为这行得通:

EQ_JOIN.merge(
lambda row: {'right': row['right'].coerce_to('array').map(
lambda pair: [r.expr('organization_') + pair[0], pair[1]]
).coerce_to('object')}
)

关于python - 如何重命名连接结果右侧的所有键以添加一个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33987948/

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