1

我已经实现了一个具有 SQL 查询和结果的 python 字典。

logtime = time.strftime("%d.%m.%Y)
sqlDict = {             'time':logtime,
            'Q1' : 50,
            'Q2' : 15,
            'Q3' : 20,
            'Q4' : 10,
            'Q5' : 30,
}

每天,结果都以字典格式写入 CSV 文件。注意:Python 字典没有排序。因此,当向字典中添加其他查询(例如 Q7、Q8、Q9...)时,每行中的列可能会有所不同。

('Q1', 25);('Q3', 23);('Q2', 15);('Q5', 320);('Q4', 130);('time', '20.03.2016')

('Q1', 35);('Q2', 21);('Q3', 12);('Q5', 30);('Q4', 10);('time', '21.03.2016')

('Q4', 22);('Q3', 27);('Q2', 15);('Q5', 30);('Q1', 10);('time', '22.03.2016')

通过在字典中添加新的 SQL 查询,附加信息也保存在同一个 csv 文件中。

所以,例如加上 Q7,字典看起来像

sqlDict = { 'time':logtime,
            'Q1' : 50,
            'Q2' : 15,
            'Q3' : 20,
            'Q4' : 10,
            'Q5' : 30,
            'Q7' : 5,
}

csv文件看起来像

('Q1', 25);('Q3', 23);('Q2', 15);('Q5', 320);('Q4', 130);('时间', '20.03.2016' )

('Q1', 35);('Q2', 21);('Q3', 12);('Q5', 30);('Q4', 10);('time', '21.03.2016')

('Q4', 22);('Q3', 27);('Q2', 15);('Q5', 30);('Q1', 10);('time', '22.03.2016')

('Q1', 50);('Q3', 20);('Q2', 15);('Q5', 30);('Q4', 10);('time', '23.03.2016');('Q7', 5)

我需要绘制 csv 中可用的所有信息,即对于所有 SQL 键,时间与值(数字)图。

csv 文件不包含常规模式。最后,我想绘制一个包含所有可用 Q 及其对应值的图表。如果行中缺少 Q,程序应假定该日期的值为 0。

4

1 回答 1

0

你只需要处理你的csv。你知道每一行的最后一个单元格是日期,所以它对我来说非常格式化。

import csv

with open("file.csv","r") as f:
    spamreader = csv.reader(f,delimiter=";")
    for row in spamreader:
        for value in range(len(row)):
            query,result = value.strip('(').strip(')').split(",")
            if query != "time":
                # process it
                # query = 'QX'
                # result = 'N'
            else:
                # query = 'time'
                # result = 'date'

困扰您的是您会将所有内容都读取为字符串,因此您将不得不在昏迷状态下拆分并剥离 '(' 和 ')'

例如:

query,result = row[x].strip('(').strip(')').split(", ")

然后查询 = 'Q2' 和结果 = 15 (类型 = 两个字符串)

于 2016-03-24T15:48:22.363 回答