python中的Web服务,用于获取Big Query中表的架构信息

Posted

技术标签:

【中文标题】python中的Web服务,用于获取Big Query中表的架构信息【英文标题】:Web service in python to get the schema information of table in Big Query 【发布时间】:2015-10-05 16:59:54 【问题描述】:

我在 python 中编写了一个 Web 服务来接受 DatasetName 和 TableName 作为 url 中的输入,这些输入将传递给大查询,并且这些字段将作为输出返回。

我已经使用 python 客户端进行 bigquery 并像这样访问架构信息,但无法获得预期的结果。

它返回“无效的数据集 ID“publicdata:samples”。数据集 ID 必须是字母数字(加上下划线、破折号和冒号),并且长度不得超过 1024 个字符。">"

import web
from bigquery import get_client
urls = (
    '/GetFields(.*)', 'get_Fields'

)
app = web.application(urls, globals())
class get_Fields:
    def GET(self,r):
          datasetname = web.input().datasetName
          tablename = web.input().tableName
# BigQuery project id as listed in the Google Developers Console.
          project_id = 'din-1085'
# Service account email address as listed in the Google Developers Console.
          service_account = '101363222700-epqo6lmkl67j6u1qafha9dke0pmcck3@developer.gserviceaccount.com'
# PKCS12 or PEM key provided by Google.
          key = 'Digin-d2421e7da9.p12'
          client = get_client(project_id, service_account=service_account,
                            private_key_file=key, readonly=True)
        # Submit an async query.
          job_id, _results = client.get_table_schema(datasetname,tablename)

        # Retrieve the results.         
          return results
if  __name__ == "__main__":
    app.run()

这是我传递的数据:

http://localhost:8080/GetFields?datasetName=publicdata:samples&tableName=shakespeare

数据集名称 :publicdata:samples TableName:莎士比亚

预期输出:

单词 字数 语料库 语料库日期

【问题讨论】:

【参考方案1】:

最后通过更改这一行使其工作

发件人:

# Submit an async query.
          job_id, _results = client.get_table_schema(datasetname,tablename)

收件人:

# Submit an async query.
      results = client.get_table_schema(datasetname,tablename)

【讨论】:

以上是关于python中的Web服务,用于获取Big Query中表的架构信息的主要内容,如果未能解决你的问题,请参考以下文章

依附大系统 数据实时获取解决方案

依附大系统 数据实时获取解决方案

使用 Python 仅从 Cloud Big Table 中获取行键?

Python和FTP

Python帮助函数调试函数 用于获取对象的属性及属性值

Python静态Web服务器-命令行启动动态绑定端口号