目的は、python スクリプト プロセスstdin
を行ごとに並べ替え、同じキーを持つ「データ ブロック」を収集し、キーが変更されたらそのブロックを JSON (または他の単一オブジェクト) として出力することです。groupby
この段階では、 and をitertools
正しく使用して、キーとデータのブロックを分離できるようにしたいだけです。以下の例では、それぞれ 3 行の 2 つのブロックがあります。セットアップは
cat data.csv | python qwe.py
どこdata.csv
ですか
1,this,is
1,a,test
1,hope,it
2,works,well
2,and,I
2,move,forward
そしてqwe.py
_
import itertools
import operator
import sys
import re
def main(argv):
for key, bloc in itertools.groupby( sys.stdin.readline().split(',') ,
key=operator.itemgetter(0)):
print '-----' + key
print list(bloc)
if __name__ == "__main__":
main(sys.argv)
ヒントをありがとう。