如何使用Sqlalchemy中的automap_base处理AttributeError(key)? [重复]
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用Sqlalchemy中的automap_base处理AttributeError(key)? [重复]相关的知识,希望对你有一定的参考价值。
请帮忙解决这个错误 - AttributeError(key):
File "pivot_table_measurements.py", line 1, in <module>
from database import *
File "/home/dedeco/Projetos/bigclima-project/database.py", line 24, in <module>
MeasureRanges = Base.classes.measure_ranges
File "/home/dedeco/craw/lib/python3.5/site-packages/sqlalchemy/util/_collections.py", line 212, in __getattr__
raise AttributeError(key)
AttributeError: measure_ranges
database.朋友:
from sqlalchemy.ext.automap import automap_base
from sqlalchemy.orm import Session
from sqlalchemy import create_engine
from sqlalchemy.orm.exc import MultipleResultsFound, NoResultFound
import string
from decimal import Decimal
ECHO = False
AUTOFLUSH = False
Base = automap_base()
engine = create_engine('postgresql://user:pass@localhost:5432/clima', echo=ECHO)
Base.prepare(engine, reflect=True)
Country = Base.classes.countries
State = Base.classes.states
City = Base.classes.cities
Measurement = Base.classes.measurements
MeasurementHourly = Base.classes.measurements_hourly
MeasureRanges = Base.classes.measure_ranges
Parameter = Base.classes.parameters
WeatherStation = Base.classes.weather_stations
session = Session(engine, autoflush=AUTOFLUSH)
表measure_ranges退出数据库,但我不知道为什么我收到此错误。当我删除这一行(MeasureRanges = Base.classes.measure_ranges)时,我认为该错误与此表中的某些问题有关。
答案
我决定分享这个问题和答案,因为这是一个基本的东西,但很难找到解决方案。
发生这个问题是因为我没有在这个表上创建主键,因为它不可能自动化到类。
查看文档:
可行,我们的意思是对于要映射的表,它必须指定主键。此外,如果将表检测为两个其他表之间的纯关联表,则不会直接映射该表,而是将其配置为两个引用表的映射之间的多对多表。
See more details here: SQLAlchemy 1.2 Documentation - Autoamp
以上是关于如何使用Sqlalchemy中的automap_base处理AttributeError(key)? [重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何从 sqlalchemy 中的 select 语句创建一个新表?
如何使用 SQLAlchemy 核心选择除 postgresql 中的 1 个特定列之外的所有表列?
如何以半自动方式迁移 SQLAlchemy for PostgreSQL 中的新 Python Enum 成员?