こんにちは、閲覧いただきまして、ありがとうございます。
pythonでスプレッドシートを使う際の疑問についてご質問させてください。
例えば、スプレッドシートの"タブA"範囲(C2:F5)のデータを取得したとして、
果物 | 販売数 | 単価 | 売上 |
---|---|---|---|
バナナ | 4 | 300 | 1200 |
メロン | 3 | 200 | 600 |
いちご | 8 | 500 | 4000 |
別の"タブB"の(I9:L12)に出力する方法がわからず、、、質問させていただきました。
試したコード
python
1# coding:utf-8 2from selenium import webdriver 3from selenium.webdriver.common.keys import Keys 4from bs4 import BeautifulSoup 5import gspread 6import json 7from gspread.exceptions import * 8#ServiceAccountCredentials:Googleの各サービスへアクセスできるservice変数を生成します。 9from oauth2client.service_account import ServiceAccountCredentials 10 11 12#----------------------------------------------------------------------------------------------------------------------# 13#スプレッドシートで基本設定 14#----------------------------------------------------------------------------------------------------------------------# 15 16#基本設定 17#2つのAPIを記述しないとリフレッシュトークンを3600秒毎に発行しなくてもよくなる 18scope = ['https://spreadsheets.google.com/feeds','https://www.googleapis.com/auth/drive'] 19 20#認証情報設定 21#ダウンロードしたjsonファイル名をクレデンシャル変数に設定(秘密鍵、Pythonファイルから読み込みしやすい位置に置く) 22credentials = ServiceAccountCredentials.from_json_keyfile_name(r'C:\Users\xxx\xxx\xxx\python.json', scope) 23 24#OAuth2の資格情報を使用してGoogle APIにログインします。 25gc = gspread.authorize(credentials) 26 27#共有設定したスプレッドシートキーを変数[SPREADSHEET_KEY]に格納する。 28SPREADSHEET_KEY = 'xxxxxxxxxxxxxxxxxxxxxxx' 29 30#----------------------------------------------------------------------------------------------------------------------# 31#スプレッドシートの取得+出力範囲設定 32#----------------------------------------------------------------------------------------------------------------------# 33 34#共有設定したスプレッドシートのシートを開く 35ws1 = gc.open_by_key(SPREADSHEET_KEY).worksheet('テスト') 36ws2 = gc.open_by_key(SPREADSHEET_KEY).worksheet('テスト2') 37 38#読み込むセル範囲 39cell_range1 = ws1.range('C2:F5') 40 41#出力先 42cell_range2 = ws2.range('I9:L12') 43 44#----------------------------------------------------------------------------------------------------------------------# 45#別シートへデータ出力 46#----------------------------------------------------------------------------------------------------------------------# 47 48for cell in cell_range2: 49 cell.value = cell_range1 50ws2.update_cells(cell_range2) 51
エラー内容
Object of type Cell is not JSON serializable
例えば、cell.valueの値をcell_range1ではなく1に変更すると
正しく出力されるので、cell.valueの値がまちがっているのではないかと考えておりますが、何がちがうのかわからず
ご教授いただけると幸いです。
python
1for cell in cell_range2: 2 cell.value = 1 3ws2.update_cells(cell_range2)
大変お忙しいところ恐縮ですが、ご回答いただけると幸いでございます。
どうぞ、よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/15 01:41