gpt4 book ai didi

python - 使用变量访问 SQLAlchemy 表列名

转载 作者:行者123 更新时间:2023-11-29 11:35:08 27 4
gpt4 key购买 nike

我有一本类似的字典

{'category_id': 'women_shoes', 'product_id': 486778462L}

这里的category_id是我在MYSQL数据库中的表名。我正在尝试从表 Women_shoes 中获取指定的 Product_id。我可以通过这段代码实现这一点

class_name = globals()[each_itemset["category_id"].capitalize()]
table_values = session.query(class_name).filter(class_name.product_id == each_itemset["product_id"])
for each in table_values:
print each.brand_name
name = "brand_name"

到目前为止,一切正常,我可以获得产品的品牌名称。我想要的是,而不是给出声明

print each.brand_name

我想做

name = "brand_name"
print each.name

因为我不想自己指定确切的表名。我想从 class_name.table.columns.keys() 获取表列名称,并迭代它以获取每个列名称并将其一一命名。

执行此操作时出现以下错误

Traceback (most recent call last):
File "main_site.py", line 14, in <module>
json_data = db_access.get_styles_from_db("work")
File "C:\Python27\Projects\Clothe Studio Recommendation Project\util\db_access.py", line 149, in get_styles_from_db
calc_outfit_scores(outfit_dict, session)
File "C:\Python27\Projects\Clothe Studio Recommendation Project\util\db_access.py", line 192, in calc_outfit_scores
print each.name
AttributeError: 'Women_shoes' object has no attribute 'name'

我已经搜索了 SQLAlchemy 文档和 SO,但似乎没有找到答案。在这种情况下应该做什么?感谢您的帮助。

最佳答案

如果你只是想生成一个对象属性的字典:值,你可以使用内置的Python对象属性字典__dict__

就你的情况

for each in table_values:               
print each.__dict__

如果您想要遵循/使用任何外键或类似机制,您将需要为该类实现一个自定义的 to_dict() 方法,并使用该方法

关于python - 使用变量访问 SQLAlchemy 表列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36730186/

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