2017-01-30 3 views
1

У меня есть массив pandas, который в каждой строке содержит координаты GPS, и я хочу узнать ограничение скорости для этих координат. Для этой проблемы я использую API-интерфейс HERES, как это.python запрос для здесь map api

for index, row in df2.iterrows(): 
    waypoint = df2['Latitude'] +','+df2['Longitude'] 
    payload = {'waypoint': waypoint, 'app_id': 'DemoAppId01082013GAL', 'app_code': 'DemoAppId01082013GAL'} 
    r = requests.post('https://route.cit.api.here.com/routing/7.2/getlinkinfo.json', params=payload) 
    df2['res'] = r.text 

Но если я хочу, чтобы перейти более 300 строк, чем я получаю ответ вроде:

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> 
<html><head> 
<title>414 Request-URI Too Large</title> 
</head><body> 
<h1>Request-URI Too Large</h1> 
<p>The requested URL's length exceeds the capacity 
limit for this server.<br /> 
</p> 
</body></html> 

Я использую этот API https://developer.here.com/api-explorer/rest/routing/link-information-for-a-location

Спасибо за помощь.

+0

Возможно, вы не можете сделать более 300 запросов в день без оплаты. – furas

+0

как для меня этот метод может использовать только одну «путевую точку», но вы используете все данные из 'df2' как« waypoint »- возможно, вам следует использовать' waypoint = row ['Latitude'] + ',' + row ['Longitude' ] 'и' row ['res'] = r.text' – furas

+0

Это была проблема, я должен использовать только одну строку, а не целый столбец в df2. Спасибо за помощь!!!!!!! – crash40

ответ

0

params аргумент requests.post() добавляет параметры в URL. Каждый сервер имеет лимит символов, который может быть указан как URL. Сообщение об ошибке ясно указывает на это.

Вы получаете index и row в цикле, но не используете их. Вместо этого используется df2, кажется, ошибка.

Во всяком случае, вы можете отлаживать это легко просто напечатав этот waypoiny

0

Этот метод можно использовать только один waypoint но использовать все данные из df2 в waypoint - вы должны использовать

waypoint = row['Latitude']+','+row['Longitude'] 

и

row['res'] = r.text 
Смежные вопросы