2016-08-09 63 views
1

下面的代码片段:如何使用ValueRenderOption在谷歌的API的Python客户端的谷歌床单

import ast 
from oauth2client import file, client, tools 
from oauth2client.service_account import ServiceAccountCredentials 
from httplib2 import Http 
from apiclient.discovery import build 
from apiclient import discovery 

SCOPE = 'https://www.googleapis.com/auth/spreadsheets' 
CREDJSON = "some-cred-file-downloaded-from-dev-console.json" 

def google_credentials(jsoncred=CREDJSON, scope=SCOPE): 
    return ServiceAccountCredentials.from_json_keyfile_name(jsoncred, scope) 


def csv_arrays(creds, key): 

    (SHEETS, sheets) = sheets_fetch(creds, key) 

    wks = sheets 
    def create_filename(arg): 
     filename = key.prefix + "_" + arg.get("properties, {}).get("title","Sheet1") 
     filename = filename.replace(" ", "_") 
     print (filename) 
     return filename 
    return [(create_filename(ws), ast.literal_eval(repr(SHEETS.spreadsheets().values().get(spreadsheetId=key.key, range=(ws.get("properties", {}).get("title", "Sheet1"))).execute().get('values',[])))) for ws in wks] #.decode("utf-8") 

def sheets_fetch(creds, key): 
    print('Now doing:', key) 
    SHEETS = build('sheets', 'v4', http=creds.authorize(Http())) 
    sheet_metadata = SHEETS.spreadsheets().get(spreadsheetId=key.key).execute() 
sheets = sheet_metadata.get('sheets', '') 

    return (SHEETS, sheets) 

我没有问题得到单元格的内容。我的问题是他们来格式化(因为这是默认值),我想他们UNFORMATTED?

如何设置从csv_array函数的返回语句的查询的选项?

https://developers.google.com/sheets/reference/rest/v4/ValueRenderOption

作为一个侧面说明,有没有办法让其他方式细胞值不是作为一个字符串AST-ED到一个列表?

回答

3

要设置UNFORMATTED_VALUE的valueRenderOption与Python客户端,可使用:

SHEETS.spreadsheets().values().get(spreadsheetId=key.key, range=myRange, valueRenderOption='UNFORMATTED_VALUE').execute()

另外,使用UNFORMATTED_VALUE时,该响应将被输入,因为它是在表(例如,数字将是数字,布尔将是布尔,字符串将是字符串)。日期是字符串或数字,这取决于DateTimeRenderOption,看到Date/Time Serial Numbers Guide关于处理日期为数字的更多信息。

因为值已经正确输入,你应该不需要做任何额外的解析与AST或再版。

+0

第一个版本的作品。我需要同时删除再版和AST使“获取类型为它的实际类型的数据,而不是总是作为一个字符串”你可以更新你的答案,所以我能接受吗? – Sebastien

+0

感谢您的确认!更新的答案。 –

相关问题