首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在python中使用mysql获取最后两个查询

在python中使用mysql获取最后两个查询
EN

Stack Overflow用户
提问于 2017-02-20 19:46:46
回答 2查看 51关注 0票数 0
代码语言:javascript
复制
last_two_programs_dict = {} 

auto_cur.execute(
    "SELECT service_key, event_id, start_date_time, duration, prog_name "
    "FROM autodb.ssr_events "
    "WHERE (ca_details='FTA' OR ca_details='SUB') "  
    "AND recordable_event='1' "
    "AND start_date_time > CURRENT_TIMESTAMP() + 180 "
    "AND start_date_time <=> start_date_time "
    "AND duration > '00:04:00' "
    "AND service_key != '4061' "
    "ORDER BY start_date_time ASC "
    "LIMIT 2 "
)

last_two_programs = auto_cur.fetchall()

for program in last_two_programs:

    last_two_programs_dict['service_key'] = event[0]
    last_two_programs_dict['event_id'] = event[1]
    last_two_programs_dict['start_date_time'] = event[2].strftime("%Y%m%dT%H%M%SZ")
    last_two_programs_dict['duration'] = '0'+str(event[3])
    last_two_programs_dict['program_name'] = event[4]


print "Last Two programs dict", last_two_programs_dict

我想要最后两个programs。当我运行这个查询时,它只给我一个。我怎么才能得到最后两条记录呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-02-20 20:10:56

你应该试试这个:

代码语言:javascript
复制
last_two_programs = [
    {
        'service_key': event[0]
        'program_id': event[1]
        'start_date_time': event[2].strftime("%Y%m%dT%H%M%SZ")
        'duration': '0' + str(event[3])
        'program_name': event[4]
    } for event in auto_cur.fetchall()
]

这叫做列表理解

票数 2
EN

Stack Overflow用户

发布于 2017-02-20 19:59:14

您在循环中覆盖了字典,创建了一个列表,并在每次迭代时将字典附加到该列表中。

代码语言:javascript
复制
last_two_programs_list = []
for program in last_two_programs:
    # create a new dict every iteration
    last_two_programs_dict = {} 

    last_two_programs_dict['service_key'] = event[0]
    last_two_programs_dict['event_id'] = event[1]
    last_two_programs_dict['start_date_time'] = event[2].strftime("%Y%m%dT%H%M%SZ")
    last_two_programs_dict['duration'] = '0'+str(event[3])
    last_two_programs_dict['program_name'] = event[4]

    # append the dict to the list
    last_two_programs_list.append(last_two_programs_dict)

此外,您可以直接迭代游标,而不是将结果集存储在列表中。

代码语言:javascript
复制
last_two_programs_list = []
for program in auto_cur:
   # create a new dict every iteration
   last_two_programs_dict = {} 
   ....
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42343745

复制
相关文章

相似问题

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