将数据更新到插入正确行

时间:2017-11-10 23:11:46

标签: python python-2.7

我在将数据更新到数据库时遇到了问题。当我运行代码时,它会将以3061开头的数据输入到3070,它应以3001开头到3010

当我尝试这个时:

for next_day, program_id in zip(nextday_list, program_id_list):
    value = program_id

    for i in range(0,10):
        if value == program_id:
           cur.execute("UPDATE programs SET program_id=? WHERE start_date=?",(value, next_day))

它将使数据库表显示如下:

channel             |   start_date     |  program_id
101 BBC One South E |  20171111230000  |  3061
101 BBC One South E |  20171111233000  |  3062
101 BBC One South E |  20171112000000  |  3063
101 BBC One South E |  20171112013500  |  3064
101 BBC One South E |  20171112014000  |  3065
101 BBC One South E |  20171112060000  |  3066
101 BBC One South E |  20171112090000  |  3067
101 BBC One South E |  20171112102000  |  3068
101 BBC One South E |  20171112123000  |  3069
101 BBC One South E |  20171112133000  |  3070
102 BBC Two | 20171111232500  |  3061
102 BBC Two | 20171112010000  |  
102 BBC Two | 20171112023500  |  
102 BBC Two | 20171112060500  |  
102 BBC Two | 20171112065000  |  
102 BBC Two | 20171112073500  |  
102 BBC Two | 20171112083500  |  
102 BBC Two | 20171112093000  |  
102 BBC Two | 20171112130000  |  
102 BBC Two | 20171112140000  |  

应该是:

channel             |   start_date     |  program_id
101 BBC One South E |  20171111230000  |  3001
101 BBC One South E |  20171111233000  |  3002
101 BBC One South E |  20171112000000  |  3003
101 BBC One South E |  20171112013500  |  3004
101 BBC One South E |  20171112014000  |  3005
101 BBC One South E |  20171112060000  |  3006
101 BBC One South E |  20171112090000  |  3007
101 BBC One South E |  20171112102000  |  3008
101 BBC One South E |  20171112123000  |  3009
101 BBC One South E |  20171112133000  |  3010
102 BBC Two | 20171111232500  |  3011
102 BBC Two | 20171112010000  |  3012
102 BBC Two | 20171112023500  |  3013
102 BBC Two | 20171112060500  |  3014
102 BBC Two | 20171112065000  |  3015
102 BBC Two | 20171112073500  |  3016
102 BBC Two | 20171112083500  |  3017
102 BBC Two | 20171112093000  |  3018
102 BBC Two | 20171112130000  |  3019
102 BBC Two | 20171112140000  |  3020

以下是program_id数据:

3001
3002
3003
3004
3005
3006
3007
3008
3009
3010
3011
3012
3013
3014
3015
3016
3017
3018
3019
3020
3021
3022
3023
3024
3025
3026
3027
3028
3029
3030
3031
3032
3033
3034
3035
3036
3037
3038
3039
3040
3041
3042
3043
3044
3045
3046
3047
3048
3049
3050
3051
3052
3053
3054
3055
3056
3057
3058
3059
3060
3061
3062
3063
3064
3065
3066
3067
3068
3069
3070

以下是program_id_list列表:

['3001', '3002', '3003', '3004', '3005', '3006', '3007', '3008', '3009', 
'3010', '3011', '3012', '3013', '3014', '3015', '3016', '3017', '3018', 
'3019', '3020', '3021', '3022', '3023', '3024', '3025', '3026', '3027', 
'3028', '3029', '3030', '3031', '3032', '3033', '3034', '3035', '3036', 
'3037', '3038', '3039', '3040', '3041', '3042', '3043', '3044', '3045', 
'3046', '3047', '3048', '3049', '3050', '3051', '3052', '3053', '3054', 
'3055', '3056', '3057', '3058', '3059', '3060', '3061', '3062', '3063', 
'3064', '3065', '3066', '3067', '3068', '3069', '3070']

以下是nextday_list列表:

['20171111224000', '20171111230000', '20171111233000', '20171112000000', 
'20171112013500', '20171112014000', '20171112060000', '20171112090000', 
'20171112102000', '20171112123000', '20171111224000', '20171111230000', 
'20171111233000', '20171112000000', '20171112013500', '20171112014000', 
'20171112060000', '20171112090000', '20171112102000', '20171112123000', 
'20171111224000', '20171111230000', '20171111233000', '20171112000000',         
'20171112013500', '20171112014000', '20171112060000', '20171112090000', 
'20171112102000', '20171112123000', '20171111224000', '20171111230000', 
'20171111233000', '20171112000000', '20171112013500', '20171112014000', 
'20171112060000', '20171112090000', '20171112102000', '20171112123000', 
'20171111224000', '20171111230000', '20171111233000', '20171112000000', 
'20171112013500', '20171112014000', '20171112060000', '20171112090000', 
'20171112102000', '20171112123000', '20171111224000', '20171111230000', 
'20171111233000', '20171112000000', '20171112013500', '20171112014000', 
'20171112060000', '20171112090000', '20171112102000', '20171112123000', 
'20171111224000', '20171111230000', '20171111233000', '20171112000000', 
'20171112013500', '20171112014000', '20171112060000', '20171112090000', 
'20171112102000', '20171112123000']

我期待做的是我想为与next_day数据相同的行中的每个频道输入10个节目ID,其中10个节目ID用于bbc 1,另外10个用于英国广播公司两个等等。

这是例如:找到next_day数据20171111224000,然后在数据库中找到它们以匹配它然后在我要输入的同一行3001,然后在下一个行next_day数据显示20171111230000我想要3002,然后300330043005等等,直到{{}每行1}}。其他渠道也是如此。

您能否向我展示一个示例,告诉我如何输入程序ID 30103001,以便在与bbc one的3010数据相同的行中输入它们,{{1对于英国广播公司的两个......等等next_day

0 个答案:

没有答案