如何将字典值保存到mysql数据库中?

bxgwgixi  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(482)

我想将dictionary中存储的值从tkintergui保存到mysql数据库中,值的dictionary如下所示。目前我使用if-else语句来表示每一个非常长的长度。

  1. db=storage.connect()
  2. cursor=db.cursor()
  3. sd1={'AWB Fees': ('122', 'Rupees', '1', '34', '4', '136.00', '8', '10.88'),
  4. 'Agency Charges': ('122', 'Rupees', '1', '78', '4', '312.00', '8',
  5. '24.96'),'AWB': ('122', 'Rupees', '1', '34', '4', '136.00', '8',
  6. '10.88')}
  7. length=len(sd1)
  8. y = (sd1.keys())
  9. if (length==1):
  10. za = ((tuple(y))[0])
  11. xa = ((sd1[za])[0])
  12. xb = ((sd1[za])[1])
  13. xc = ((sd1[za])[2])
  14. xd = ((sd1[za])[3])
  15. xf = ((sd1[za])[4])
  16. xg = ((sd1[za])[5])
  17. xh = ((sd1[za])[6])
  18. xi = ((sd1[za])[7])
  19. cursor.execute(
  20. "INSERT INTO sea_exp_tra_raiselocal_inv_fright_est
  21. (rlcn_id,billing_head, sac, currency, ex_rate, rate, value,
  22. amount, gst, gst_amnt) VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)",
  23. (sepmId,za,xa,xb,xc,xd,xf,xg,xh,xi))
  24. else:
  25. pass
  26. db.commit()
  27. db.close()
anauzrmj

anauzrmj1#

你真的把事情搞得太复杂了。首先让我们清理代码:

  1. sd1 = {
  2. 'AWB Fees': ('122', 'Rupees', '1', '34', '4', '136.00', '8', '10.88'),
  3. 'Agency Charges': ('122', 'Rupees', '1', '78', '4', '312.00', '8', '24.96'),
  4. 'AWB': ('122', 'Rupees', '1', '34', '4', '136.00', '8', '10.88')
  5. }
  6. sql = """
  7. INSERT INTO sea_exp_tra_raiselocal_inv_fright_est
  8. (rlcn_id,billing_head, sac, currency, ex_rate, rate, value, amount, gst, gst_amnt)
  9. VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)
  10. """
  11. key = list(d.keys())[0]
  12. values = (sepmId, key,) + sd1[key]
  13. cursor.execute(sql, values)

现在你要做的就是迭代 sd1.items() (生成键、值对):

  1. sd1 = {
  2. 'AWB Fees': ('122', 'Rupees', '1', '34', '4', '136.00', '8', '10.88'),
  3. 'Agency Charges': ('122', 'Rupees', '1', '78', '4', '312.00', '8', '24.96'),
  4. 'AWB': ('122', 'Rupees', '1', '34', '4', '136.00', '8', '10.88')
  5. }
  6. sql = """
  7. INSERT INTO sea_exp_tra_raiselocal_inv_fright_est
  8. (rlcn_id,billing_head, sac, currency, ex_rate, rate, value, amount, gst, gst_amnt)
  9. VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)
  10. """
  11. for key, val in sd1.items():
  12. values = (sepmId, key,) + val
  13. cursor.execute(sql, values)
展开查看全部

相关问题