首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在炼金术中使用AttributeError(密钥)来处理automap_base?

如何在炼金术中使用AttributeError(密钥)来处理automap_base?
EN

Stack Overflow用户
提问于 2017-12-22 01:10:52
回答 1查看 3.3K关注 0票数 2

请帮助解决此错误-AttributeError(键):

代码语言:javascript
复制
  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.py:

代码语言:javascript
复制
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)时,我认为这个错误与本表中的一些问题有关。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-22 01:16:24

我决定分享这个问题和答案,因为它是一个基本的东西,但很难找到解决办法。

这个问题的发生是因为我没有在这个表上创建一个主键,也因为无法对一个类进行自动化。

见文件:

所谓可行,我们的意思是要映射一个表,它必须指定一个主键。此外,如果检测到该表是两个其他表之间的纯关联表,则不会直接映射它,而是将其配置为两个引用表之间的映射之间的多到多表。

请参阅更多详细信息: SQLAlchemy 1.2文档- Autoamp

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47934743

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档