在mysql中的表中的不同行中插入字典的值

时间:2015-09-15 08:17:46

标签: python mysql dictionary

我有一个字典,每个键都有多个值。 解析日志文件后会生成此字典。

([('RUNID', ['11098782', '11098782']), ('Test', ['OMP', 'AMP']), ('SubType', ['LU', 'BU']), ('Class', ['C', 'A']), ('Size', ['162', '64']), ('Iterations', ['250', '250']), ('Time', ['839.76', '44.30'])])

键的数量是相同的,但是与每个键有关的值可能change(In the example above it is 2 and can be even more)我已经在MySQL中创建了一个表,其中Columns为我的Keys(Runid,Test,Subtype,Class,Size,Iterations,Time)字典。现在我想在数据库中的单行中插入与每个键对应的键values(11098782,OMP,LU,C,162,250,839.96)。与具有不同values(1109872,AMP,BU,A,64,250,44.30)的下一行相同。任何帮助都表示赞赏。谢谢!

1 个答案:

答案 0 :(得分:1)

您可以将列表转换为dict

然后zip dict的值以获得所需结果的列表。

注意:您应该修复sql,按照values的相应顺序制作keys

>>> b = ([('RUNID', ['11098782', '11098782']), ('Test', ['OMP', 'AMP']), ('SubType', ['LU', 'BU']), ('Class', ['C', 'A']), ('Size', ['162', '64']), ('Iterations', ['250', '250']), ('Time', ['839.76', '44.30'])])
>>> b = dict(b)
>>> zip(*b.values())
[('LU', '11098782', '250', '839.76', 'OMP', 'C', '162'), ('BU', '11098782', '250', '44.30', 'AMP', 'A', '64')]
>>> b.keys()
['SubType', 'RUNID', 'Iterations', 'Time', 'Test', 'Class', 'Size'] # order matters