У меня есть do c в GS с автоматически загруженными данными со значениями цифр c в строковом формате. Во всех ячейках есть метка, поэтому я могу превратить строки в числа, удалив ее.
Он успешно работает, когда для обновления используется метод gspread одна ячейка: wks.update_acell("B7", str(1939.0).replace("'"," "))
Но я хочу поменять все ячейки в диапазоне с помощью wks.update_cells.
В официальных документах для взрослых есть пример:
cell_list = wks.range('A1:C7')
for cell in cell_list:
cell.value = 'O_o'
# Update in batch
wks.update_cells(cell_list)
В этой форме это работает, но в моем случае с cell.value = str.replace("'","")
я получаю ошибку:
TypeError: replace() takes at least 2 arguments (1 given)
Я думаю, что мне нужно поместить что-то в круглые скобки str (). Заменить - но не понимаю, что ... Может Кто-нибудь, помогите мне, пожалуйста?
PS Полный код:
import pandas as pd
import numpy as np
from pandas import Series,DataFrame
from file4dir1 import rep
pd.set_option('display.max_columns',None)
pd.set_option('display.expand_frame_repr',False)
pd.set_option('max_colwidth',-1)
mytoken='***'
project = '***'
DateFrom="2019-12-01"
DateTo="2019-12-31"
data=rep(mytoken,project,DateFrom,DateTo)
file=open("cashe3.csv","w")
file.write(data)
file.close()
f=pd.read_csv("cashe3.csv", header=1, sep=' ',index_col=0,parse_dates=True)
import googleapiclient.discovery
import argparse
from apiclient import discovery
from oauth2client import client
from oauth2client import tools
SCOPES = 'https://www.googleapis.com/auth/spreadsheets'
CLIENT_SECRET_FILE = "myGSapp4.json"
APPLICATION_NAME = 'Google Sheets API Report'
credential_path = 'sheets.googleapis.com-report.json'
from httplib2 import Http
from oauth2client.file import Storage
store = Storage(credential_path)
credentials = store.get()
parser = argparse.ArgumentParser(formatter_class=argparse.RawDescriptionHelpFormatter, parents=[tools.argparser])
flags = parser.parse_args([])
if not credentials or credentials.invalid:
flow = client.flow_from_clientsecrets(CLIENT_SECRET_FILE, SCOPES)
flow.user_agent = APPLICATION_NAME
if flags:
credentials = tools.run_flow(flow, store, flags)
print('Storing credentials to ' + credential_path)
from apiclient.discovery import build
from oauth2client.service_account import ServiceAccountCredentials
from apiclient.discovery import build
from httplib2 import Http
import gspread
from df2gspread import df2gspread as d2g
spreadsheet_key = '***'
wks_name = 'Sheet0'
d2g.upload(f, spreadsheet_key, wks_name, credentials=credentials, row_names=True)
# индексы строк и столбцов, например
gc = gspread.authorize(credentials)
wks_name = gc.open_by_key('***').get_worksheet(0)
cell_list = wks_name.range('E7:E13')
requests = {
"requests": [
{
"findReplace": {
"range": {
"sheetId": 'Sheet0',
"startRowIndex": 7,
"endRowIndex": 13,
"startColumnIndex": 5,
"endColumnIndex": 5
},
"find": "^'",
"searchByRegex": True,
"includeFormulas": True,
"replacement": ""
}
}
]
}
wks_name.update_cells(cell_list)