Deutsch

Почему не работает этот код в Питоне

3526  1 2 все
kukka местный житель02.09.23 22:40
kukka
02.09.23 22:40 

Кто разбирается, прошу помощи. Линк не работает в коде, а по видеокурсу все в порядке. Всем спасибо.


import requests

MY_LAT = 51.565645

MY_LONG = -8.676756

parameters = {

"lat": MY_LAT,

"lng": MY_LONG,

"formatted": 0,

}



response = requests set(url="http://api.open-notify.org/iss-now.json")

response.raise_for_status()

data = response.json()

print(data)

sunrise = data["results"] ["sunrise" ]

sunset = data["results"] ["sunset" ]

print(sunrise.split("T")[1].split(":")[0])

time_now = datetime.now()

print(time_now.hour)

#1 
Murr патриот02.09.23 22:53
Murr
NEW 02.09.23 22:53 
в ответ kukka 02.09.23 22:40

Линк не работает в коде

-----

HTTP ERROR 404

#2 
uscheswoi_82 коренной житель02.09.23 23:11
uscheswoi_82
NEW 02.09.23 23:11 
в ответ kukka 02.09.23 22:40

Я делал уже этот пример см. https://programming.mybb.ru/viewtopic.php?id=83, там нет параметров data["results"] ["sunrise" ] и data["results"] ["sunset" ] см. http://api.open-notify.org/iss-now.json, есть только timestamp, iss_position, longitude, latitud, и message см.:

{"timestamp": 1693688864, "iss_position": {"longitude": "20.5175", "latitude": "18.7122"}, "message": "success"}


Вот сам пример:

import requests
import json
def get_coord():
  #Обращается к URL ресурсу, запрос метод GET
  response = requests.get('http://api.open-notify.org/iss-now.json')
  if response:
    #Превращает из JSON в Dictionary 
    _dict = json.loads(response.content)
    sat_pos = _dict['iss_position']
    print("lan %s lon %s" % (sat_pos['latitude'], sat_pos['longitude']))
get_coord()
Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение Дневник тяжелобольного инвалида
#3 
uscheswoi_82 коренной житель02.09.23 23:22
uscheswoi_82
NEW 02.09.23 23:22 
в ответ kukka 02.09.23 22:40

Вы наверное спутали с вот этой библиотекой - https://sunrise-sunset.org/api

Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение Дневник тяжелобольного инвалида
#4 
kukka местный житель03.09.23 18:48
kukka
NEW 03.09.23 18:48 
в ответ uscheswoi_82 02.09.23 23:11

import requests

import json

MY_LAT = 51.565645

MY_LONG = -45.676756

parameters = {

"lat": MY_LAT,

"lng": MY_LONG,

"formatted": 0,

}

response = requests.get('http://api.open-notify.org/iss-now.json')

response.raise_for_status()

data = response.json()

print(data)

sunrise = data["results"] ["sunrise"]

sunset = data["results"] ["sunset" ]

print(data.split("T")[1].split(":")[0])

time_now = datetime.now()

print(time_now.hour)

#5 
AlexNek патриот03.09.23 18:52
AlexNek
NEW 03.09.23 18:52 
в ответ kukka 02.09.23 22:40
а по видеокурсу все в порядке

- никогда не пользуйтесь только одним источником, там могут быть ошибки.

https://requests.readthedocs.io/en/latest/, https://requests.readthedocs.io/en/latest/user/quickstart/...,

https://www.powercms.in/article/how-get-json-data-remote-u...

- разбейте задачу на маленькие шаги, проверяйте каждый из них и думайте.

вот вы определяете parameters, а зачем? где они используются?


пройдите по этой ссылке http://api.open-notify.org/iss-now.json

и получите {"message": "success", "iss_position": {"longitude": "-74.1586", "latitude": "-37.5604"}, "timestamp": 1693758902}


Причем заход и восход солнца к положению ISS?

sunrise = data["results"] ["sunrise" ]

sunset = data["results"] ["sunset" ]

#6 
kukka местный житель03.09.23 19:04
kukka
NEW 03.09.23 19:04 
в ответ uscheswoi_82 02.09.23 23:22, Последний раз изменено 03.09.23 20:17 (kukka)
  1. import requests
  2. from datetime import datetime
  3. MY_LAT = 38.548330
  4. MY_LONG = -90.326280
  5. LOCAL_UTC_OFFSET = 6
  6. #response = requests.get(url="http://api.open-notify.org/iss-now.json")
  7. #response.raise_for_status()
  8. #data= response.json()
  9. #longitude = data["iss_position"]["longitude"]
  10. #latitude = data["iss_position"][latitude]
  11. #iss_position = (longiture, latitude)
  12. #print(iss_position)
  13. def utc_to_local(utc_hour):
  14. utc_hour += LOCAL_UTC_OFFSET
  15. if LOCAL_UTC_OFFSET > 0:
  16. if utc_hour > 23:
  17. utc_hour -= 24
  18. elif LOCAL_UTC_OFFSET < 0:
  19. if utc_hour < 0:
  20. utc_hour += 24
  21. return utc_hour
  22. parameters = {
  23. "lat": MY_LAT,
  24. "lng": MY_LONG,
  25. "formatted": 0,
  26. }
  27. response = requests.get("https://api.sunrise-sunset.org/json", params=parameters)
  28. response.raise_for_status()
  29. data = response.json()
  30. sunrise = int(data["results"]["sunrise"].split("T")[1].split(":")[0])
  31. sunset = int(data["results"]["sunset"].split("T")[1].split(":")[0])
  32. lt_sunrise = utc_to_local(sunrise)
  33. lt_sunset = utc_to_local(sunset)
  34. print(sunrise)
  35. print(sunset)
  36. time_now = datetime.now()
  37. print(time_now.hour)


Спасибо за советы, читаю другие форумы.


#7 
kukka местный житель03.09.23 20:44
kukka
NEW 03.09.23 20:44 
в ответ AlexNek 03.09.23 18:52

Я не физик, поэтому не могу сказать какое отношение имеет ISS к заходу солнца. Хотя если думать логически, речь идёт о спутниках, измеряющих в том числе и эти данные.

#8 
AlexNek патриот03.09.23 21:11
AlexNek
NEW 03.09.23 21:11 
в ответ kukka 03.09.23 20:44, Последний раз изменено 03.09.23 21:12 (AlexNek)
Хотя если думать логически, речь идёт о спутниках,

речь скорее не о спутниках, а о где-то об API, но проблема не в этом.

В учебных упражнениях не следует смешивать различные задачи.

Вот вы привели код - он же совершенно грязный. Ненужные закоментированные строки, различные задачи.

Попробуйте в одном файле решать одну и только одну задачу. В начале файла можете описать задачу. Потом вам же самой будет намного легче разбираться.

#9 
Grossmutters_G прохожий04.09.23 18:06
NEW 04.09.23 18:06 
в ответ kukka 03.09.23 19:04

А код-то в итоге заработал? :-)


#10 
kukka местный житель04.09.23 21:10
kukka
NEW 04.09.23 21:10 
в ответ AlexNek 03.09.23 21:11

Спросим доцента, как курс построен. Всем спасибо!!

#11 
kukka местный житель04.09.23 21:13
kukka
NEW 04.09.23 21:13 
в ответ Grossmutters_G 04.09.23 18:06

работает ещё как;) но не этот. Но это не к теме;) понятное дело, что доцент не будет все показывать, самим надо додумывать.

#12 
AlexNek патриот04.09.23 21:38
AlexNek
NEW 04.09.23 21:38 
в ответ kukka 04.09.23 21:10

Успехов, но у каждого свое мнение как нужно учить программированию.

#13 
uscheswoi_82 коренной житель04.09.23 23:32
uscheswoi_82
NEW 04.09.23 23:32 
в ответ AlexNek 03.09.23 18:52

ИМХО она спутала http://open-notify.org/Open-Notify-API/ISS-Location-Now/ с https://sunrise-sunset.org/api.

Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение Дневник тяжелобольного инвалида
#14 
AlexNek патриот05.09.23 17:45
AlexNek
NEW 05.09.23 17:45 
в ответ uscheswoi_82 04.09.23 23:32
она спутала

не думаю, если глянуть на приведенный код, там три различных задания в одном файле (при этом не совсем верно реализовано кажется).

А вот отчего именно так требуется, другой вопрос.

#15 
kukka местный житель09.11.23 09:16
kukka
NEW 09.11.23 09:16 
в ответ uscheswoi_82 04.09.23 23:32, Последний раз изменено 09.11.23 09:19 (kukka)

import requests

import json

def get_coord():

#Обращается к URL ресурсу, запрос метод GET

response = requests.get('http://api.open-notify.org/iss-now.json')

if response:

#Превращает из JSON в Dictionary

_dict = json.loads(response.content)

sat_pos = _dict['iss_position']

print("lan %s lon %s" % (sat_pos['latitude'], sat_pos['longitude']))

get_coord()

print (f"Please connect with users")

#3

import requests

from datetime import datetime

MY_LAT = 31.23228

MY_LONG =121.46921

LOCAL_UTC_OFFSET = 6

response = requests.get(url="http://api.open-notify.org/iss-now.json")

response.raise_for_status()

data= response.json()

longitude = data["iss_position"]["longitude"]

latitude = data["iss_position"]["latitude"]

iss_position = (longitude, latitude)

print(iss_position)


Полное г...результаты показывают другие данные. С чем это связано?

Месяца три назад все отлично работало.

#16 
Grossmutters_G прохожий13.11.23 20:04
NEW 13.11.23 20:04 
в ответ kukka 09.11.23 09:16
Полное г...результаты показывают другие данные. С чем это связано?
Месяца три назад все отлично работало.

А что, собственно, ожидается? какие данные? Что не работает?

вот первая часть - результат:

$ python part1.py
lan 48.7634 lon 35.8669
Please connect with users


Вторая часть - результаты:

$ python part2.py
('76.1658', '50.4180')


Вроде отлично работает :-)


#17 
kukka местный житель13.11.23 20:52
kukka
NEW 13.11.23 20:52 
в ответ Grossmutters_G 13.11.23 20:04

The longitude and latitude can be either positive or negative to indicate the direction from the prime meridian and the equator, respectively. Positive values indicate north for latitude and east for longitude, while negative values indicate south for latitude and west for longitude. In the context of global positioning, positive and negative values are used to specify whether the location is north or south of the equator and east or west of the prime meridian.

#18 
VornerX знакомое лицо13.11.23 23:31
VornerX
NEW 13.11.23 23:31 
в ответ kukka 13.11.23 20:52

Вы конечно извините, но тут ни при чем ни приведенный код, ни Python. Не вполне понятна задача, не вполне понятны требования к используемым внешним источникам данных.
Просто кидаете куски кода и пишете "ниработает". А критериев "шоб работало", не даете улыб

No problem can be solved by the same kind of thinking that created it.
#19 
kukka местный житель14.11.23 07:34
kukka
NEW 14.11.23 07:34 
в ответ VornerX 13.11.23 23:31

В моей программе код выдает совсем другие данные. Хотя должен с точностью выводить данные заданные в коде. с плюсом.


#20 
Grossmutters_G прохожий14.11.23 12:43
NEW 14.11.23 12:43 
в ответ kukka 14.11.23 07:34
В моей программе код выдает совсем другие данные. Хотя должен с точностью выводить данные заданные в коде. с плюсом.

Сорян, но не стало яснее :-(


Вы просто составьте табличку, вроде такой, как ниже (но с более релевантными деталями)


Что я хочу видеть как результат работы программыЧто она выдает
На моем банковском счету лежит 100`000`000 евро!Результат, ввергающий меня в уныние (меньше 10`000 евро!)


И возможно сразу станет понятно, куда закралась ошибка...


#21 
kukka местный житель14.11.23 13:38
kukka
NEW 14.11.23 13:38 
в ответ Grossmutters_G 14.11.23 12:43

ups, вы ошиблись. Таблицу pretty тоже составила. С суммой к сожалению ошиблись ни та ни та ни другая не соответствует действительности.

#22 
Grossmutters_G прохожий20.11.23 09:31
NEW 20.11.23 09:31 
в ответ kukka 14.11.23 13:38

Я ничего не понял :-)

Уточню:

  • не понятно, что ожидается. К данному момент вообще не очевидно, что вы ожидаете получить. Код в комментарии, на который я ответил, безупречен. В том смысле, что он делает ровно то, что там написано: выводит долготу и широту в том виде, в котором описал автор кода.


Если вы еще раз детально опишите ожидаемый результат vs. имеющийся сейчас результат, то станет понятнее, что означает "выводит какую-то ерунду".

например:

  • в результате работы программы ожидаю увидеть следующую строку "Lat: X North, Long: Y West", получаю: Lat: X, Long: -Y
    • причина: в программе нигде не производится нужное форматирование вывода, его надо написать. При написании учитывайте, что Lat>0 - это North, Lat <0 - это South; Long >0 - это East, Long<0 - это West.
  • и т.п.


#23 
kukka местный житель26.11.23 15:52
kukka
NEW 26.11.23 15:52 
в ответ AlexNek 03.09.23 21:11

А вы по работе решаете только одно задание в день?

#24 
AlexNek патриот26.11.23 16:15
AlexNek
NEW 26.11.23 16:15 
в ответ kukka 26.11.23 15:52
А вы по работе решаете только одно задание в день?

Вы похоже что то путаете, качество кода никак не связано с количеством заданий в день.


Ну а конкретно по вопросу, нужно еще знать что подразумевается под заданием.


#25 
Murr патриот26.11.23 16:54
Murr
NEW 26.11.23 16:54 
в ответ AlexNek 26.11.23 16:15

нужно еще знать что подразумевается под заданием.

------

Наверное как обычно - поменять картинку на веб-форме и поправить соответствующий индекс в Оракле для повышения производительности...

#26 
Срыв покровов патриот26.11.23 21:31
NEW 26.11.23 21:31 
в ответ Murr 26.11.23 16:54

Индекс, соответствующий картинке?))

#27 
Murr патриот26.11.23 22:29
Murr
NEW 26.11.23 22:29 
в ответ Срыв покровов 26.11.23 21:31

И шо?

Об такой вакансии Я как-то писал... ну там еще всякое промежуточное требовалось...

#28 
kukka местный житель27.11.23 08:10
kukka
NEW 27.11.23 08:10 
в ответ Grossmutters_G 14.11.23 12:43

Он уже картинку с банковского счёта предоставил, что дальше...таблицу составлять в питоне?


#29 
kukka местный житель28.11.23 11:23
kukka
NEW 28.11.23 11:23 
в ответ Murr 26.11.23 16:54

Все работает без ошибок...спасибо!

#30 
Murr патриот28.11.23 20:45
Murr
NEW 28.11.23 20:45 
в ответ kukka 28.11.23 11:23

Не за что - Я ничего не сделал для того чтобы оно хоть как-то работало. безум

#31 
1 2 все