【问题标题】:Bottle Framework SqlAlchemy Type Error: object not iterableBottle Framework SqlAlchemy 类型错误:对象不可迭代
【发布时间】:2017-02-16 03:33:27
【问题描述】:

我正在尝试使用瓶子框架编写一个 REST api。我的基类 CRUD 有两种方法。 基本查询执行查询,get_values 方法遍历结果并返回数据。但是我得到了 object not iterable 错误。

class InfluencerCrud(CrudObject):
def base_query(self, db_session, request_params):

    return db_session.query(Groups, GroupLeaders, Users) \
            .filter(GroupLeaders.id == Groups.group_leaders_id) \
            .filter(Users.id == GroupLeaders.users_id )

def get_values(self, db_session, request_params, raw_result):
    logging.error(raw_result)
    for group, group_leader, user in raw_result:
        data = as_dict(group, include_columns = ['clicks_estimated', 'completeness', 'cpc', 'created_at',
                                                 'description', 'guid','languages_id', 'name', 'registration_status',
                                                 'size', 'url', 'verticals_id'])
        data['addresses_id'] = user.addresses_id
        data['user'] = as_dict(user, include_columns = ["addresses_id", "created_at", "education_id", "email",
                                                        "email_verified_at", "gender", "income_id", "marital_status_id",
                                                        "name_first", "name_last", "phone", "status", "updated_at", "worK_status_id"])
        data['user']['race_id'] = []
        c = session.query(UserHasRace.race_id).filter(UserHasRace.user_id == user.id)
        for r, in c:
            data['user']['race_id'].append(r)
        data['user']['children'] = []
        c = session.query(UserChildren).filter(UserChildren.user_id == user.id)
        for r in c:
            data['user']['children'].append(get_dict_obj(r))
        picurl = None
        up = session.query(UserPicture).filter(UserPicture.id == user.pictures_id).first()
        if up != None and up.file_name != None:
            i = up.file_name.rfind('/')
            picurl = linqia.system.config.avatars.s3_url + 'user_pictures/' + up.file_name[i + 1:]
        data['user']['picture_url'] = picurl
        return data

以下是错误

文件“/home/linqia-api-internal/current/api-internal/source/influencers/influencer.py”,第 42 行,在 get_values [2017 年 2 月 14 日星期二 20:41:10] [错误] [client ::1] for group, group_leader, user in raw_result: [2017 年 2 月 14 日星期二 20:41:10] [错误] [client ::1] TypeError: 'Groups' object is not iterable

当我尝试打印原始数据时,我得到了对所有三个对象的引用。我只是不想迭代它们。

任何帮助将不胜感激,谢谢

【问题讨论】:

    标签: python sqlalchemy bottle


    【解决方案1】:

    得到了修复。 我的 get_values 函数正在调用我所做的每个查询,因此,它是我所做的所有查询(组、组长、用户)的元组 所以我不得不以元组的形式访问它。

    【讨论】:

      猜你喜欢
      • 2016-05-30
      • 1970-01-01
      • 2012-10-30
      • 2017-03-05
      • 2021-03-02
      • 2020-04-18
      • 1970-01-01
      • 2022-12-06
      • 2021-12-25
      相关资源
      最近更新 更多