使いどころは少ないと思いますが、エクセル(xlsx)形式から「辞書のリスト」形式で取得する関数を作ったので備忘録として残します。
「辞書のリスト」形式とはこのような形式です。
1 |
data = [{"A": 1, "B": 2},{"A": 3, "B": 4}] |
このようなエクセルファイル「エクセルデータ.xlsx」があったとして、「辞書のリスト」化します。
商品ID | 商品名 | 商品ページ情報 | 価格 |
1111 | test1 | aaaa | 980 |
2222 | test2 | bbbb | 580 |
3333 | test3 | cccc | 1980 |
4444 | test4 | dddd | 480 |
5555 | test5 | eeee | 4980 |
6666 | test6 | ffff | 2480 |
これを「辞書のリスト」形式にするコードはこちらになります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
import openpyxl #xlsx形式を辞書リスト化する def xlsx_info_get(): info_list = [] wb = openpyxl.load_workbook("エクセルデータ.xlsx") ws = wb.active header_itemid = ws['A1'].value header_itemname = ws['B1'].value header_itempage = ws['C1'].value header_itemprice = ws['D1'].value x = 66 for k in range(2,1000): itemid = ws['A' + str(k) ].value itemname = ws['B' + str(k) ].value itempage = ws['C' + str(k) ].value itemprice = ws['D' + str(k) ].value if itemid == None: break info_list.append({header_itemid:itemid,header_itemname:itemname,\ header_itempage:itempage,header_itemprice:itemprice}) print(info_list) |
これを実行すると
1 2 3 |
print(info_list) #[{'商品ID': 1111, '商品名': 'test1', '商品ページ情報': 'aaaa', '価格': 980}, {'商品ID': 2222, '商品名': 'test2', '商品ページ情報': 'bbbb', '価格': 580}, {'商品ID': 3333, '商品名': 'test3', '商品ページ情報': 'cccc', '価格': 1980}, {'商品ID': 4444, '商品名': 'test4', '商品ページ情報': 'dddd', '価格': 480}, {'商品ID': 5555, '商品名': 'test5', '商品ページ情報': 'eeee', '価格': 4980}, {'商品ID': 6666, '商品名': 'test6', '商品ページ情報': 'fffff', '価格': 2480}] |
このようになります。