リストの日付と数字のリストをスプレッドシートから取り出し、辞書のリストを作成しようとしています開始日、停止日、および値です。私が近づいていますが、私は理解することはできませんリストのリストからチャートデータを作成する(開始日/終了日を含む)
{'start': '11/01/2016', 'end': '11/02/2016', 'IP': '50'}
{'start': '11/02/2016', 'end': '11/09/2016', 'IP': '23'}
{'start': '11/09/2016', 'end': '11/09/2016', 'IP': '66'}
{'start': '11/13/2016', 'end': '11/14/2016', 'IP': '50'}
{'start': '11/15/2016', 'end': '11/21/2016', 'IP': '100'}
{'start': '11/23/2016', 'end': '11/24/2016', 'IP': '50'}
:私は(ガントチャートに後で変換のために)必要なもの
d = [[datetime.datetime(2016, 11, 1, 0, 0), 50L],
[datetime.datetime(2016, 11, 2, 0, 0), 50L],
[datetime.datetime(2016, 11, 2, 0, 0), 50L],
[datetime.datetime(2016, 11, 2, 0, 0), 23L],
[datetime.datetime(2016, 11, 2, 0, 0), 23L],
[datetime.datetime(2016, 11, 2, 0, 0), 23L],
[datetime.datetime(2016, 11, 7, 0, 0), 23L],
[datetime.datetime(2016, 11, 8, 0, 0), 23L],
[datetime.datetime(2016, 11, 9, 0, 0), 23L],
[datetime.datetime(2016, 11, 9, 0, 0), 23L],
[datetime.datetime(2016, 11, 9, 0, 0), 66L],
[datetime.datetime(2016, 11, 9, 0, 0), 66L],
[datetime.datetime(2016, 11, 13, 0, 0), 50L],
[datetime.datetime(2016, 11, 14, 0, 0), 50L],
[datetime.datetime(2016, 11, 15, 0, 0), 100L],
[datetime.datetime(2016, 11, 16, 0, 0), 100L],
[datetime.datetime(2016, 11, 17, 0, 0), 100L],
[datetime.datetime(2016, 11, 17, 0, 0), 100L],
[datetime.datetime(2016, 11, 17, 0, 0), 100L],
[datetime.datetime(2016, 11, 20, 0, 0), 100L],
[datetime.datetime(2016, 11, 21, 0, 0), 100L],
[datetime.datetime(2016, 11, 21, 0, 0), 100L],
[datetime.datetime(2016, 11, 23, 0, 0), 50L]]
は次のように出力されます。サンプルデータは、次のようになります最後の値を含める方法を示します(はい、IPアドレスです。私のテストでは読みやすくするために短縮されています)。私の現在のコードでは、最後のアイテムの日付も崩れます。
そして、ここで私が取得していますものです:
{'start': '11/01/2016', 'end': '11/02/2016', 'IP': '50'}
{'start': '11/02/2016', 'end': '11/09/2016', 'IP': '23'}
{'start': '11/09/2016', 'end': '11/09/2016', 'IP': '66'}
{'start': '11/14/2016', 'end': '11/14/2016', 'IP': '50'}
{'start': '11/16/2016', 'end': '11/21/2016', 'IP': '100'}
はここで、これまでに私のコードです:
df = []
fmtD = '%m/%d/%Y'
dates = []
lastIP = 0
for x in range(len(d)):
ipAdd = d[x][1]
if ipAdd == lastIP or x == 0:
dates.append(d[x][0])
elif ipAdd != lastIP:
df.append(dict(IP = str(lastIP),\
start=min(dates).strftime(fmtD),\
end = max(dates).strftime(fmtD)))
dates = []
elif x == len(d):
df.append(dict(IP = str(lastIP),\
start=min(dates).strftime(fmtD),\
end = max(dates).strftime(fmtD)))
lastIP = ipAdd
for item in df:
print item
あなたが取得しているどのような出力?あなたが何を期待しているのか、何を得ているのかを理解できるように、それを示してください! –
ありがとうございます。現在の出力を追加しました。 – bgrundy