创建一个Python函数来使用JSON数据源并启动API搜索

2024-04-27 14:02:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我不太确定我是否知道如何问这个问题,但我的目标是:

我的机器上安装了一个Python包,它可以在线搜索数据并返回url供下载。我想创建一个单独的Python函数,从JSON数据源传递搜索参数,启动包(导入必要的库,标识配置文件,执行搜索,并打印url),然后返回打印的url。诚然,我不完全确定如何开始,或者我的问题是否有意义。在

通常,我通过控制台或cmd行使用searchapi,对于上面提到的步骤(导入库、定义.cfg、搜索和打印url)没有任何问题。只是不知道如何让一个“自动”函数在后台执行此操作。提前谢谢你的帮助。如果需要的话,我很乐意澄清任何细节。在

-尊敬的, C


Tags: 数据函数cmd机器jsonurl目标参数
2条回答

还有一点前端工作,但大部分是一个体面的独立脚本。谢谢你的帮助9000!在

from pyCMR import CMR

try:
    import json
except ImportError:
    import simplejson as json 

cmr=CMR(".../cmr.cfg")    

def search (dt, pt, short):

    search = cmr.searchGranule(temporal=dt, point=pt, short_name=short)

    return search;

with open('jsontest.txt','r') as job:
        data=json.load(job)
        print data

dt = data['start']+", "+data['end']
print dt
pt = data['point']
short = data['short_name']

res= search(dt=dt,pt=pt,short=short)
for result in res:
    print result['Granule']['OnlineAccessURLs']['OnlineAccessURL']['URL']

从“启动包”的单个搜索步骤开始。它可以是一个函数,甚至是一个单独的完整的Python脚本。我们称之为do_search。它是自包含的,可以独立测试,并且可以构建。在

创建一个函数,该函数接受来自数据源的记录,为search函数/脚本准备数据,启动它(可能通过subprocess.Popen),并收集结果。我们称之为invoke_search。在

创建一个函数/脚本来保持对数据源的读取。它可以对每个新的项目调用invoke_search,或者并行运行合理数量的invoke_search(使用线程池、进程池或芹菜),并提供某种类型的数据接收器/流来写入搜索结果。在

通常提供两个管道:任务管道和结果管道。您的提要读取过程从提要中读取,并将提要中的项放入任务管道中。从任务管道读取的工作线程/进程。工作线程等待,然后从任务管道中选择任务,执行其工作,并将结果推送到结果管道。在

结果管道可以是任何东西;它可以将数据放入文件、目录、数据库等

如果您的提要刷新缓慢,并且并行处理没有任何好处,那么您可以按顺序执行所有这些操作,但总体架构仍然有效。在

相关问题 更多 >