создание оператора обновления mysql из словаря python с ключом в предложении where - PullRequest
0 голосов
/ 03 мая 2018

У меня проблемы с созданием операторов обновления MySQL из словаря python с ключом where предложение

Вот как выглядит мой проблемный код:

for key, values in d.items():
    sql = """UPDATE news SET title={},avail={},URL={},status={},degree={}""".format(key, .join(values[0::2]),.join(values[1::3]),.join(values[2::4]),.join(values[3::5]))
    print(sql)

Вот значения в моем словаре

d={'ZB06WW34556GND5G': [u'[<font color="red">Google</font>] News: Sports & Outdoors',
                ' Only 13',
                u'https://www.google.com',
                u'13',
                '-2.0'],
'ZB06WWG4444444ND5G': [u'[<font color="red">CNN</font>] News: Sports & Outdoors',
                ' Only 15',
                u'https://www.cnn.com',
                u'14',
                '-4.0']
                }

Ниже ожидаются результаты:

UDPATE new SET title="[<font color="red">Google</font>] News: Sports & Outdoors",avail="Only 13",URL="https://www.google.com",status="13",degree="-2.0" where id="ZB06WW34556GND5G"
UDPATE new SET title="[<font color="red">CNNGoogle</font>] News: Sports & Outdoors",avail="Only 15",URL="https://www.cnn.com",status="14",degree="-4.0" where id="ZB06WWG4444444ND5G"

Может ли кто-нибудь направить меня в правильном направлении? Я заблудился в ключах и ценностях ...

1 Ответ

0 голосов
/ 03 мая 2018

Следующий код дает ожидаемый результат:

for key, values in d.items():
    sql = """UPDATE news SET title = '{}', avail = '{}', URL = '{}', status = '{}', degree = '{}' where id = '{}'""".format(d[key][0], d[key][1], d[key][2], d[key][3], d[key][4], key)
    print(sql)
...