あいつの日誌β

働きながら旅しています。

python で json to csv

こんなのを

[
    { 'ika': 100, 'uni': 200, 'toro': 300 }, { 'ika': 200, 'uni': 300, 'toro': 400 }
]

こんなのにする

[ 
    [ 100, 200, 300],
    [ 200, 300, 400]
]

順番は ika, uni, toro にする。そしてこの多次元配列を csv モジュールに任せる作業をしたいです。

書いてみる

# -*- coding: utf-8 -*-

sales = [ 
    { 'ika': 100, 'uni': 200, 'toro': 300 },  
    { 'ika': 200, 'uni': 300, 'toro': 400 }
]

keys = ['ika', 'uni', 'toro']
rows = []
for sale in sales:
    columns = []
    for key in keys:
        columns.append(sale[key])
    rows.append(columns)

print(rows)

内包表記

# -*- coding: utf-8 -*-

sales = [
    { 'ika': 100, 'uni': 200, 'toro': 300 },
    { 'ika': 200, 'uni': 300, 'toro': 400 }
]

keys = ['ika', 'uni', 'toro']
rows = []
for sale in sales:
    rows.append( [sale[key] for key in keys] )

print(rows)

もっと内包表記

# -*- coding: utf-8 -*-

sales = [
    { 'ika': 100, 'uni': 200, 'toro': 300 },
    { 'ika': 200, 'uni': 300, 'toro': 400 }
]

keys = ['ika', 'uni', 'toro']
rows = [[sale[key] for key in keys] for sale in sales]

print(rows)

うーん。なんかもっといい書き方ないかなあ。jq かしら。