@xxxfdd

Хочу получить местоположение по ip но выдает вот эту ошибку в чём дело?

Хочу взять данные с сайте freegeoip.net но выдает ошибку вот код
import requests
import json

send_url = 'http://freegeoip.net/json'
r = requests.get(send_url)
j = json.loads(r.text)
lat = j['latitude']
lon = j['longitude']

вот такая ошибка

raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
  • Вопрос задан
  • 254 просмотра
Решения вопроса 3
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
Во-первых, строка j = json.loads(r.text) не нужна. Во-вторых, стоит проверять, что вернулось в ответе.
Ответ написан
AndreasFxPro
@AndreasFxPro
Програмирую на языке python. Увлекаюсь парсингом
Привет. Так сайт не возвращает json. Если я не прав, скинь что тебе вернуло (print(r.text))

P.S Автор, прочитай доки https://ipstack.com/documentation
Ответ написан
То, что такой сайт в принципе больше не существует, вас не смущает?
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
MinTnt
@MinTnt
Крч. Самая краткая реализация того что ты хотел, это
pip install geocoder


import geocoder
print(geocoder.ip('me').latlng)

Она напишет координаты указаного IP.

#Вместо 'me' можно вставить любой IP.

Но минус в том что всё же нужно где-то будет доставать IP. Да и минус в том, что отслеживание идёт по IP, т.е. очень неточное может быть. Может показывать где провайдер находится и тд.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы