【问题标题】:Use static variables instead of using argparse in googleapiclient - Python在 googleapiclient - Python 中使用静态变量而不是使用 argparse
【发布时间】:2026-01-13 07:50:01
【问题描述】:

我刚刚开始使用适用于 python 的 Google Search Analytics API main sample

我想更进一步,将静态变量传递给 sample_tools.init(),而不是在命令行界面中被询问。

我可以通过什么方式添加这些参数并传递给 sample_tools.init()?

start_date = '2015-10-20' start_date = '2015-10-21' var_uri = 'http://www.example.com'

import argparse
import sys
from googleapiclient import sample_tools

argparser = argparse.ArgumentParser(add_help=False)
argparser.add_argument('property_uri', type=str,
                       help=('Site or app URI to query data for (including '
                             'trailing slash).'))
argparser.add_argument('start_date', type=str,
                       help=('Start date of the requested date range in '
                             'YYYY-MM-DD format.'))
argparser.add_argument('end_date', type=str,
                       help=('End date of the requested date range in '
                             'YYYY-MM-DD format.'))

def main(argv):
    service, flags = sample_tools.init(
        argv, 'webmasters', 'v3', __doc__, __file__, parents=[argparser],
        scope='https://www.googleapis.com/auth/webmasters.readonly')

    request = {
        'startDate': flags.start_date,
        'endDate': flags.end_date,
        'dimensions': ['page', 'query'],
        'rowLimit': 50
    }
    response = execute_request(service, flags.property_uri, request)
    print_table(response, 'Top Queries')

【问题讨论】:

    标签: python google-search-api


    【解决方案1】:

    这很简单,我只是从数组中删除了 argparser 并将其留空,然后定义变量。

    def main(argv):
        service, flags = sample_tools.init(
            argv, 'webmasters', 'v3', __doc__, __file__, parents=[],
            scope='https://www.googleapis.com/auth/webmasters.readonly')
    
        start_date = datetime.datetime.strftime(
            datetime.datetime.now() - datetime.timedelta(days=4), '%Y-%m-%d')
        end_date = datetime.datetime.strftime(
            datetime.datetime.now() - datetime.timedelta(days=3), '%Y-%m-%d')
    
        property_uri = 'http://www.bmimedia.net'
    
        #Create the request. Use the API tutorial to explain how the API works
        request = {
            'startDate': end_date,
            'endDate': end_date,
            'dimensions': ['page', 'query'],
            'rowLimit': 10
        }
    
        response = execute_request(service, property_uri, request)
        print_table(response, 'Top Queries', end_date)
    

    【讨论】:

    • 即使argv 也可以替换为[] 并且parents=[] 可以从sample_tools.init 参数中删除。