Python Flickr API,函数问题

Python Flickr API,函数问题,python,json,function,api,Python,Json,Function,Api,下面是我的代码,我对函数“get_flickr_data”有问题。我没有收到回溯错误,函数只是没有返回任何数据。该函数应检查缓存数据中是否存在每个请求的唯一标识符,如果存在,则应从缓存中访问表示该数据的Python对象。如果缓存中没有此类数据,该函数应向Flickr照片搜索API发出请求,以查找使用输入字符串标记的照片。它应该修改Flickr API返回的字符串,以便将其格式化为JSON。该函数应该将新的数据字典添加到缓存字典中,并与唯一标识符键关联,并且应该将缓存字典中的所有数据(现在有一个额

下面是我的代码,我对函数“get_flickr_data”有问题。我没有收到回溯错误,函数只是没有返回任何数据。该函数应检查缓存数据中是否存在每个请求的唯一标识符,如果存在,则应从缓存中访问表示该数据的Python对象。如果缓存中没有此类数据,该函数应向Flickr照片搜索API发出请求,以查找使用输入字符串标记的照片。它应该修改Flickr API返回的字符串,以便将其格式化为JSON。该函数应该将新的数据字典添加到缓存字典中,并与唯一标识符键关联,并且应该将缓存字典中的所有数据(现在有一个额外的键值对)写入缓存文件。“get_flickr_data”的返回值应该是表示flickr Photos搜索API中的搜索数据的字典,而不管它是从缓存中获取数据还是发出新请求并将数据保存到缓存中。任何帮助都将不胜感激

CACHE_FNAME = "cached_data.json"
try:
    filex = open(CACHE_FNAME, 'rb')
    saved_cache = pickle.load(filex)
    filex.close()
except:
    CACHE_DICTION = {}

def params_unique_combination(baseurl, params_d, private_keys=["api_key"]):
    alphabetized_keys = sorted(params_d.keys())
    res = []
    for k in alphabetized_keys:
        if k not in private_keys:
            res.append("{}-{}".format(k, params_d[k]))
    return baseurl + "_".join(res)
def get_flickr_data(search_data,photo_number=50):
    baseurl ="https://api.flickr.com/services/rest/"
    params_d={}
    params_d["tags"]= search_data
    params_d["per_page"]=photo_number
    params_d["format"]= "json"
    params_d["method"]= "flickr.photos.search"
    params_d["tag_mode"]= "all"
    params_d["api_key"] = FLICKR_KEY
    unique_indent = params_unique_combination(baseurl,params_d)

    if unique_indent in CACHE_DICTION:
        flickr_info = CACHE_DICTION[unique_indent]
    else:
        resp = requests.get(baseurl,params_d)
        python_flickr = json.loads(resp.text[14:-1])
        CACHE_DICTION[unique_indent] = python_flickr
        f = open(CACHE_FNAME,"w")
        cache_str_tmp = json.dumps(CACHE_DICTION)
        f.write(cache_str_tmp)
        f.close()
    return CACHE_DICTION
get_flickr_data("mountains",50)
下面是来自“pset7_cached_data.json”的一些数据…由于限制,我无法发布所有数据


{“”:{“照片”:{“总计”:“1054369”,“照片”:[{“isfamily”:0,“标题”:“2017-02-26-Almsee-0293”,“农场”:4,“ispublic”:1,“服务器”:“3953”,“isfriend”:0,“机密”:“0a3c9acb9a”,“所有者”:56354257@N04“,“id:”32602919934“},{“isfamily”:0,“title:”2016-12-10-Hochkoenig-8013”,“farm”:4,“ispublic”:1,“server:”3801,“isfriend”:0,“秘密”:“a679be116e”,“所有者”:56354257@N04“,“id:”32631595083“},{“isfamily”:0,“title:”2016-12-10-Hochkoenig-8041”,“farm”:3,“ispublic”:1,“server:”2826;“isfriend”:0,“secret:”b8cde01f80,“owner:”56354257@N04,“id:“33405347396”},{“isfamily”:0,“title:“Fanes”,“farm”:4,“ispublic”:1,“server:“3748”,“isfriend”:0秘密“:“5010b4ab57”,“所有者”:140619052@N04“,“id:”33289850742“},{“isfamily”:0,“title:”巴伐利亚州艾布西“,”农场“:3,“ispublic”:1,“服务器“:”2831“,”isfriend“:0,“secret:”9ccc32ef33“,”所有者“:”60199917@N02“,“id:”33317386691“},{“isfamily”:0,“title:”巴伐利亚州埃布西市”,“农场”:3,“ispublic”:1,“服务器”:“2842”,“isfriend”:0,”秘密“:“35ea92c879”,“所有者”:60199917@N02“,“id”:“32631213063”},{“isfamily”:0,“标题”:“巴伐利亚州埃布西”,“农场”:4,“ispublic”:1,“服务器”:“3867”,“isfriend”:0,“机密”:“93d9afb2b9”,“所有者”:”60199917@N02“,“id:”33317381491“},{“isfamily”:0,“title:”巴伐利亚州埃布西市”,“农场”:4,“ispublic”:1,“服务器”:“3761”,“isfriend”:0,”秘密“:“bce444e73f”,“所有者”:60199917@N02“,“id”:“33289800442”},{“isfamily”:0,“title”:“DSC03957”,“farm”:4,“ispublic”:1,“server”:“3854”,“isfriend”:0,“secret”:“ab02c3e662”,“owner”:”64067043@N08“,“id”:“33444407725”},{“isfamily”:0,“title”:“04a2271 02”,“farm”:4,“ispublic”:1,“server”:“3715”,“isfriend”:0,“secret”:”f9da860c21,“所有者”:47391132@N00“,”id“:”3344401925“},{“isfamily”:0,“title”:“04a2271 04”,“farm”:4,“ispublic”:1,“server”:“3799”,“isfriend”:0,“secret”:“02ee9a4c5d”,“owner”:”47391132@N00“,”id“:”3344401475“},{“isfamily”:0,“title”:“04a2271 05”,“farm”:4,“ispublic”:1,“server”:“3778”,“isfriend”:0,“secret”:“9ff76730e0”“所有者”:47391132@N00“,“id”:“3344401195”},{“isfamily”:0,“title”:“04a2271 06”,“farm”:4,“ispublic”:1,“server”:“3909”,“isfriend”:0,“secret”:“F439EC75”,“owner”:”47391132@N00,id:“33060835430”},{“isfamily”:0,“title:“04a2271 08”,“farm”:4,“ispublic”:1,“server:“3698”,“isfriend”:0,“secret:“533c038b10”,“owner”: "47391132@N00“,“id”:“33060835210”},{“isfamily”:0,“title”:“04a2271 09”,“farm”:3,“ispublic”:1,“server”:“2929”,“isfriend”:0,“secret”:“e05cdf5ec2”,“owner”:”47391132@N00“,”id“:”33060835060“},{“isfamily”:0,“title”:“04a2271 10”,“farm”:4,“ispublic”:1,“server”:“3723”,“isfriend”:0,“secret”:“ed7f4bf8df”,“owner”:"47391132@N00“,“id”:“33060834940”},{“isfamily”:0,“title”:“04a2271 11”,“farm”:3,“ispublic”:1,“server”:“2833”,“isfriend”:0,“secret”:“e47dc82db0”,“owner”:”47391132@N00“,“id”:“33060834740”},{“isfamily”:0,“title”:“04a2271 12”,“farm”:4,“ispublic”:1,“server”:“3746”,“isfriend”:0,“secret”:“8d88689613”,“owner”:”47391132@N00“,“id”:“33060834550”},{“isfamily”:0,“title”:“04a2271 13”,“farm”:4,“ispublic”:1,“server”:“3919”,“isfriend”:0,“secret”:“73759dda01”,“owner”:”47391132@N00“,“id”:“33060834350”},{“isfamily”:0,“title”:“04a2271 14”,“farm”:1,“ispublic”:1,“server”:“673”,“isfriend”:0,“secret”:“b7877ca2a6”,“owner”:”47391132@N00“,“id”:“33288384312”},

你能指出你在哪一行得到错误吗?我在我的描述中添加了更多内容以提供清晰性!我运行了相同的程序,它正在返回数据。尝试
打印get_flickr_数据(“mountains”,50)
而不是
获取flickr_数据(“mountains”,50)
以检查它是否正在打印数据。