【问题标题】:EOL while scanning string liberal扫描字符串时 EOL
【发布时间】:2016-10-25 16:24:26
【问题描述】:

我对 Python 比较陌生,所以请原谅我的愚蠢。我想检查谷歌表数据并在扫描错误时继续运行 EOL。我查看了其他帖子并尝试了各种策略,但似乎都没有结果。我认为客户电子邮件或私人 ID 似乎是引号的问题。

import gspread
from oauth2client.service_account import *

json_key = 'gspread-test.json'
scope = ['https://spreadsheets.google.com/feeds']

credentials = ServiceAccountCredentials.from_json_keyfile_name('test@developer.gserviceaccount.com', """
-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDVS4fuXzpnKrAI\nfaZEhkNdkcHKwcbQdYOhsxVwiaMkTffExvix+Uch37JaTIyCCw4D0CKv5bR\n5FOQPAVJgciJTUKK03UZJZfgtNWVY73dBq5DTL0afI2tn9+sKgtm/BulgA\nPrKtDmlp5YX7atgXbwJTjWpZ8OLOdBtwAcL0zBYS2PR/+qNOPT1NP1tJgTEMHmbN\nuyEl0Xqqrm87Ku7eaMEcmlQrhGLH2WmpR0YEXs2hQLGx\ne/RbqrD3qr/XYbRm9TwZkCyt\n-----END PRIVATE KEY-----\n
""", scope)

gc = gspread.authorize(credentials)

wks = gc.open('Simple data').sheet1

【问题讨论】:

  • 行尾的 `` 只是跳过换行符。你确定要这样做吗?您要在字符串中放入什么数据(多行)?你能edit你的问题提供吗?
  • 私钥太长了,为了简单起见,我想将它分散到多行,这就是我使用三引号的原因。
  • Pythoner,我删除了我的答案,因为更详细地查看上面的示例,它似乎不太正确。您是故意在 \ 处换行,并将 n 作为下一行的第一个字符,还是应该将 \n 放在一起? \ 在行尾捕获换行符,然后 n 成为字符串的一部分。如果他们注定要在一起\n那么它会引入换行符,所以他们会做非常相反的事情
  • 是的,我是故意拆线的。
  • 如果您有意尝试换行,则需要确保 \n 保持在一起。如果你在物理上将它们分开(如上面所做的那样),那么你正在逃避物理上的破坏

标签: python gspread


【解决方案1】:

ServiceAccountCredentials.from_json_keyfile_name() 函数有 2 个参数:

  1. 包含您的客户端 ID 和客户端密码的 .json 文件的路径
  2. 范围 url(你有正确的)

这样的事情应该可以工作:

path_to_json = <<absolute path to json file>>
scope = ['https://spreadsheets.google.com/feeds']
credentials = ServiceAccountCredentials.from_json_keyfile_name(path_to_json, scope)
client = gspread.authorize(credentials)

然后client 可用于访问您想要的任何工作表。

【讨论】:

    猜你喜欢
    • 2020-02-28
    • 1970-01-01
    • 1970-01-01
    • 2015-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多