Python HttpError:<;请求时出现HttpError 400https://www.googleapis.com/bigquery/v2/projects/
这是我在尝试对bigquery进行身份验证调用时遇到的错误数据Python HttpError:<;请求时出现HttpError 400https://www.googleapis.com/bigquery/v2/projects/,python,google-app-engine,google-bigquery,google-api-python-client,Python,Google App Engine,Google Bigquery,Google Api Python Client,这是我在尝试对bigquery进行身份验证调用时遇到的错误数据 HttpError: <HttpError 400 when requesting https://www.googleapis.com/bigquery/v2/projects/ClientId/datasets/samples/tables/natality?alt=json returned "Invalid project ID 'ClientId'. Project IDs must contain 6-63 low
HttpError: <HttpError 400 when requesting https://www.googleapis.com/bigquery/v2/projects/ClientId/datasets/samples/tables/natality?alt=json returned "Invalid project ID 'ClientId'. Project IDs must contain 6-63 lowercase letters, digits, or dashes. IDs must start with a letter and may not end with a dash.">
这里是app.yaml
application: hellomydashboard
version: 1
runtime: python
api_version: 1
handlers:
- url: /favicon\.ico
static_files: favicon.ico
upload: favicon\.ico
- url: .*
script: main.py
这是bqclient.py
import httplib2
from apiclient.discovery import build
from oauth2client.appengine import oauth2decorator_from_clientsecrets
class BigQueryClient(object):
def __init__(self, http, decorator):
"""Creates the BigQuery client connection"""
self.service = build('bigquery', 'v2', http=http)
self.decorator = decorator
def getTableData(self, project, dataset, table):
decorated = self.decorator.http()
return self.service.tables().get(projectId=project, datasetId=dataset,
tableId=table).execute(decorated)
def getLastModTime(self, project, dataset, table):
data = self.getTableData(project, dataset, table)
if data is not None and 'lastModifiedTime' in data:
return data['lastModifiedTime']
else:
return None
def Query(self, query, project, timeout_ms=10000):
query_config = {
'query': query,
'timeoutMs': timeout_ms
}
decorated = self.decorator.http()
result_json = (self.service.jobs()
.query(projectId=project, body=query_config)
.execute(decorated))
return result_json
我还尝试用项目Id替换ClientId,如错误中所述,但它给出了另一个错误
HttpError: <HttpError 404 when requesting https://www.googleapis.com/bigquery/v2/projects/hellodashboard87/datasets/samples/tables/natality?alt=json returned "Not Found: Dataset hellodashboard87:samples">
HttpError:
我将按照本页上的教程进行操作
为了使用BigQuery,您必须在中创建一个启用了BigQuery的项目(我假设您已经这样做了)。创建项目后,您将能够从URL获取项目编号,例如
https://code.google.com/apis/console/#project:12345XXXXXXX
在本例中,项目编号为
12345XXXXXXX
,这是您将用于project\u ID
的值。为了使用BigQuery,您必须在中创建一个启用了BigQuery的项目(我假设您已经这样做了)。创建项目后,您将能够从URL获取项目编号,例如
https://code.google.com/apis/console/#project:12345XXXXXXX
在本例中,项目编号为
12345XXXXXXX
,这是您将用于project\u ID
的值。为了使用Google的BigQuery提供的公共数据集,请使用以下参数:
项目ID:publicdata
数据集ID:样本
表ID:natality
(或任何您想要使用的)
要使用您拥有的任何数据集,请将项目ID切换到API控制台仪表板中的ID。要使用Google的BigQuery提供的公共数据集,请使用以下参数: 项目ID:
publicdata
数据集ID:样本
表ID:natality
(或任何您想要使用的)
要使用您拥有的任何数据集,请将您的项目ID切换到API控制台仪表板中的数据集。您发布的错误消息说明了一切:“无效的项目ID‘ClientId’。项目ID必须包含6-63个小写字母、数字或破折号。”。为什么不尝试将
PROJECT\u ID
更改为类似于PROJECT ID
的内容,即仅使用小写字母、数字或破折号。是的,我也尝试了使用PROJECT ID,但它给出了另一个错误HttpError:您可以尝试并使用它来测试输入是否准确。通过这个方法,你可以更容易地使用API来快速测试你的输入值。正如你所说的,我试过了,但是它显示----error 404 Not Found-Show headers-{“error”:{“errors”:[{“domain”:“global”,“reason”:“notFound”,“message”:“notFound:Dataset 440265227336:samples”}],“code”:404,“消息”:“未找到:数据集440265227336:samples”}@someone1它还显示请求GET{YOUR_API_KEY}授权:ya29.ahes6zqddqsqbwjpn3ngtaayf33ouscsw2vwtcyr4z9sgerxxx-JavaScript-User-Agent:Google API Explorer我需要API密钥吗?如果需要,怎么做?没有输入API密钥的字段您发布的错误消息说明了一切:“无效的项目ID‘ClientId’”。项目ID必须包含6-63个小写字母、数字或破折号。“。为什么不尝试将PROJECT_ID
更改为类似PROJECT ID
的内容,即仅使用小写字母、数字或破折号。是的,我也尝试了使用项目ID,但它给出了另一个错误HttpError:您可以尝试并使用它来测试输入是否准确。通过这个方法,你可以更容易地使用API来快速测试你的输入值。正如你所说的,我试过了,但是它显示----error 404 Not Found-Show headers-{“error”:{“errors”:[{“domain”:“global”,“reason”:“notFound”,“message”:“notFound:Dataset 440265227336:samples”}],“code”:404,“消息”:“未找到:数据集440265227336:samples”}@someone1它还显示请求GET{YOUR_API_KEY}授权:Bearer ya29.ahes6zqddqsqbwjpn3ngtaayf33ouscsw2vwtcyr4z9sgerxxx-JavaScript-User-Agent:Google API Explorer我需要API密钥吗?如果需要,怎么做?没有输入API密钥的字段。我做了完全相同的事情,但仍然得到这个错误,说项目ID无效,您创建了项目在API控制台中是否正确?您使用的项目ID值是多少?我错了,请查看我编辑的答案。您需要的是项目编号,而不是客户ID(尽管项目编号经常出现在客户ID中)。仍然收到另一个错误HttpError:您现在遇到了另一类问题,它肯定是正确的身份验证。您需要调整数据集
和表格
,以匹配项目中的这些问题。我做了完全相同的事情,但仍然收到此错误,称项目ID无效,并且您创建了proAPI控制台中的项目是否正确?项目ID使用的值是多少?我错了,请查看我编辑的答案。您需要的是项目编号,而不是客户ID(尽管项目编号经常出现在客户ID中)。仍然会遇到另一个错误HttpError:您现在遇到了另一类问题,它肯定是正确的身份验证。您需要调整数据集
和表
,以匹配项目中的数据。因此,为了使用公共数据,我不需要在google api控制台上创建我自己的项目或任何东西。但是在dat c中ase我将如何验证您当前的身份验证方法应如何工作,您是否收到任何错误?因此,为了使用公共数据,我不需要在google api控制台上创建我自己的项目或任何内容。但在这种情况下,我将如何验证您当前的身份验证方法应如何工作,您是否收到任何错误?