2016-10-04 94 views
0

對不起,如果這是一個愚蠢的問題,我正在學習如此原諒我。 我得到這個方法(更新):此方法是否返回一個url?

def get_photo(self, photo_reference): 
    print(self.photourl) 
    print(photo_reference) 
    resp = requests.get(
     url='{}{}'.format(self.photourl, photo_reference), 
     params={'key': self.api_key} 
    ) 
    try: 
     return resp.json() 
    except ValueError: 
     print('Invalid JSON') 

我建立了requests.get與Google Places API - Place Photo。 在我__init__(self):

self.place_detail_url = 'https://maps.googleapis.com/maps/api/place/' 
self.ref = 'photo?maxwidth=200&photoreference=' 
self.photourl = self.place_detail_url + self.ref 

我想從谷歌的地方API的照片,但我想,它返回None。 我不知道get_photo方法返回什麼,如果它不是一個網址。我怎樣才能將它編碼到一個網址?

+0

你應該從'get_photo()'返回一些東西嗎?.. – alecxe

+0

該方法裏沒有'return'語句,所以它會返回默認的'None'。我懷疑你應該分配'requests.get'調用返回的值並返回它,它應該是一個包含你想要的照片數據的對象(它也包含其他有用的東西)。 –

+0

你想下載圖片嗎? requests.get(url).content您需要將其與一個打開的命令組合在一起以保存文件:'open(file,'wb')as file:file.write(requests.get(url).content) ' – Lost

回答

1

我有我的回答,resp是一個對象,並根據HTTP狀態200,我的網址是好的。所以我只需要做return resp.url以獲得正確的URL鏈接。這是一個小問題,但我做到了這一點。對不起,謝謝你的答案!

0

也許嘗試這(對你看似首選方法基於上述建立的網址你自己的):

def get_photo(self, photo_reference): 
    request_url = (self.place_detail_url + self.ref + photo_reference + '&key=' + self.api_key) 
    output_file = (/path/to/image/here/file.png) 
    with open(output_file, 'wb') as output: 
     output.write(requests.get(request_url).content) 
+0

其實我想讓它返回一個字符串(https鏈接)。因爲我想在參數中放入'image_url',並將其發送回Facebook Messenger API [link](https://developers.facebook.com/docs/messenger-platform/send-api-reference/generic-template) 。你有什麼主意嗎?我知道如何從json中獲得價值,但是這個Google Places Photo返回了不同的東西。我知道它不會返回一個json響應。 –

+0

我想'打印(STR(RESP))'和我得到這個回'的https://maps.googleapis.com/maps/api/place/photo maxwidth = 200&photoreference ='&'CoQBcwAAAKoYnKhY40-G1p55pNqMnQrKGKpzD9_9abee8YUMO72VoWfl5CCAyI5iL3mU1BoUIXtlM1vOCar7ZpIRZAOjui5ByS70Ha7VN1z9Y8446xUxu_8PSgb5VaoxtlzXxTO63fC6dFZzEeX8R5Aos1ucVn0-yUbZxuLYgx6uLOopj1jWEhAZ9e6FBFOvWcXTQ51qp_LxGhRbJT1D6CCmaTIlpZvABh5QhXn8dQ'?長字符串是photo_reference,我在瀏覽器中檢查過它並返回'https://lh3.googleusercontent。COM/-es-54JIkYqQ/VvcJjK4fJbI/AAAAAAASeZE/T4whpXc9rDsjsk1tjOG3nmLqYATo2zcVw/S1600-W200 /' –

相關問題