Форум сайта python.su
Всем привет!
Увы, я не пайтонист… Но в своем микро-проекте столкнулся с проблемой парсинга данных.
Не очень уверен, но, вроде, это все-таки Python… Данные для построения графика.
Если с датами (ось X) разобрался, то с осью Y - данные по величине уровня рек, беда…
Раньше сайт http://gis.vodinfo.ru/ выкладывал таблицы и все отлично парсилось. Но вчера они почему-то убрали эту функцию… Остался только график.
Так, собственно, вопрос - можно вот из такой строки получить данные ?!
"y":{"__ndarray__":"8xnMZzDPdEDKayivocx0QGcxncV0ZnRAEtxHcB8NdEBl0PinSbpzQGdmZmZmbnNAmpmZmZkZc0B4d3d3d8dyQO/u7u7uenJAmpmZmZkxckCJiIiIiOhxQDMzMzMzo3FARERERERgcUBVVVVVVSFxQFFeQ3kNwXBAGv80yaBhcEDnywGWbSZwQDAHWLb5DnBAvbu7u7vzb0BnZmZmZoZvQGVmZmZmHm9AMzMzMzPDbkBFRERERHRuQBERERERMW5AAAAAAADwbUDv7u7u7q5tQHh3d3d3b21AEBERERExbUCD+wjuI7BsQHV8bYtPV2xAe4JzkVUNbEA=","dtype":"float64","shape":[31]}
Отредактировано AAT666 (Сен. 17, 2021 10:53:27)
Офлайн
Используй тег code для точной передачи JSON-данных на форуме
[code]
здесь пиши JSON
[/code]
Отредактировано py.user.next (Сен. 17, 2021 10:50:46)
Офлайн
AAT666они точно должны быть целыми?
Тут должно быть 31 целое число. 3-ехзначное. Положительное.
"dtype":"float64","shape":[31]
[code python][/code]
Отредактировано PEHDOM (Сен. 17, 2021 14:56:18)
Офлайн
Спасибо большое! Сейчас попробую…
Вот из source html:
"x":[1629244800000.0,1629331200000.0,1629417600000.0,1629504000000.0,1629590400000.0,1629676800000.0,1629763200000.0,1629849600000.0,1629936000000.0,1630022400000.0,1630108800000.0,1630195200000.0,1630281600000.0,1630368000000.0,1630454400000.0,1630540800000.0,1630627200000.0,1630713600000.0,1630800000000.0,1630886400000.0,1630972800000.0,1631059200000.0,1631145600000.0,1631232000000.0,1631318400000.0,1631404800000.0,1631491200000.0,1631577600000.0,1631664000000.0,1631750400000.0,1631836800000.0],"y":{"__ndarray__":"AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8=","dtype":"float64","shape":[31]}}, "x":[1629244800000.0,1629331200000.0,1629417600000.0,1629504000000.0,1629590400000.0,1629676800000.0,1629763200000.0,1629849600000.0,1629936000000.0,1630022400000.0,1630108800000.0,1630195200000.0,1630281600000.0,1630368000000.0,1630454400000.0,1630540800000.0,1630627200000.0,1630713600000.0,1630800000000.0,1630886400000.0,1630972800000.0,1631059200000.0,1631145600000.0,1631232000000.0,1631318400000.0,1631404800000.0,1631491200000.0,1631577600000.0,1631664000000.0,1631750400000.0,1631836800000.0],"y":{"__ndarray__":"aC+hvYRWbkAT2ktoLwFuQDuK6yiuw21AfQT3EdynbUCvobyG8tptQDGdxXQWE25AUV5DeQ1lbkBjOovpLKZuQA3lNZTX0G5AXUN5DeUVb0AT3EdwH4FvQBLcR3AfAXBA3EdwH8EtcEDNZDaT2SxwQH0E9xHcJ3BAO4vpLKZDcEC5jeQ2kmtwQFFeQ3kNhXBA01lMZzF9cECZzmI6i3lwQLiP4D6Ci3BAUV5DeQ2VcEAS3EdwH6FwQHUW01lMt3BAlzj1e261cEBL0cPeqPBwQLb5coBlF3FAW0ltJbUlcUAxn8F8ButwQPcvvqHacHBApdR0NLVrcEA=","dtype":"float64","shape":[31]}}
Прикреплённый файлы:
gis3.jpg (229,8 KБ)
Офлайн
AAT666вы очевидно не понимаете разницу между числом и типом числа, число может быть целое, но его тип float. Судя по вашему графику у вас по одной оси вообще идут даты…
. А нижний - текущего года, там точно - только целые числа!
s='8xnMZzDPdEDKayivocx0QGcxncV0ZnRAEtxHcB8NdEBl0PinSbpzQGdmZmZmbnNAmpmZmZkZc0B4d3d3d8dyQO/u7u7uenJAmpmZmZkxckCJiIiIiOhxQDMzMzMzo3FARERERERgcUBVVVVVVSFxQFFeQ3kNwXBAGv80yaBhcEDnywGWbSZwQDAHWLb5DnBAvbu7u7vzb0BnZmZmZoZvQGVmZmZmHm9AMzMzMzPDbkBFRERERHRuQBERERERMW5AAAAAAADwbUDv7u7u7q5tQHh3d3d3b21AEBERERExbUCD+wjuI7BsQHV8bYtPV2xAe4JzkVUNbEA=' data = (base64.b64decode(s)) a = np.frombuffer(data, dtype=np.float64) print(a) >>> [332.94931774 332.78947368 326.40350877 320.82017544 315.64298246 310.9 305.6 300.46666667 295.68333333 291.1 286.53333333 282.2 278.01666667 274.08333333 268.06578947 262.10175439 258.40175439 256.93596491 255.61666667 252.2 248.95 246.1 243.63333333 241.53333333 239.5 237.46666667 235.48333333 233.53333333 229.50438596 226.72846004 224.41669533]
[code python][/code]
Отредактировано PEHDOM (Сен. 17, 2021 17:23:16)
Офлайн
Да не… Разницу я понимаю.
Насчет даты я разобрался - это UNIX формат, в msec (от 01/01/1970)
В PowerShell это сделать просто.
[datetimeoffset]::FromUnixTimeMilliseconds(1629244800000.0).DateTime 18 августа 2021 г. 0:00:00
Офлайн
результат для второго примера, вот это “aC+hvYRWbkAT2ktoLwFuQDuK6yiuw21AfQT3EdynbUCvobyG8tptQDGdxXQWE25AUV5DeQ1lbkBjOovpLKZuQA3lNZTX0G5AXUN5DeUVb0AT3EdwH4FvQBLcR3AfAXBA3EdwH8EtcEDNZDaT2SxwQH0E9xHcJ3BAO4vpLKZDcEC5jeQ2kmtwQFFeQ3kNhXBA01lMZzF9cECZzmI6i3lwQLiP4D6Ci3BAUV5DeQ2VcEAS3EdwH6FwQHUW01lMt3BAlzj1e261cEBL0cPeqPBwQLb5coBlF3FAW0ltJbUlcUAxn8F8ButwQPcvvqHacHBApdR0NLVrcEA=” разворачиваетсяв :
[242.7037037 240.03703704 238.11500975 237.24561404 238.84210526
240.59649123 243.15789474 245.19298246 246.52631579 248.68421053
252.03508772 256.07017544 258.85964912 258.80311891 258.49122807
260.22807018 262.72319688 264.31578947 263.8245614 263.59649123
264.71929825 265.31578947 266.07017544 267.45614035 267.33947368
271.04122807 273.4622807 274.35672515 270.68908382 263.05337691
262.73173948]
[code python][/code]
Офлайн
Ок! Мерси! Похоже, они, все-таки добавляют какую-то “соль” к данным…
К счастью, владельцы поправили что-то и теперь есть страничка с таблицей! )))
Огромная благодарность за помощь!
ЗЫ: Если как-то можно пояснить… вот эта функция что делает ??
base64.b64decode(s)
Офлайн
AAT666необязательно, может мы неправильно их декодируем, Мы то не знаеи что должно получиться в итоге, я просто предположил что данные были закодированы с помощью Base64, это обычная практика, но там могло быть и чтото другое.
Похоже, они, все-таки добавляют какую-то “соль” к данным…
AAT666Декодирует данные из текстовго вида в двоичный.
вот эта функция что делает ??
[code python][/code]
Офлайн
Не-не! Мы знаем что должно получиться - график же показывает данные.
Вот другие данные (там 2 набора - один как среднее за все года, другой - за текущий год). Где какой не понятно только…
"x":[1629331200000.0,1629417600000.0,1629504000000.0,1629590400000.0,1629676800000.0,1629763200000.0,1629849600000.0,1629936000000.0,1630022400000.0,1630108800000.0,1630195200000.0,1630281600000.0,1630368000000.0,1630454400000.0,1630540800000.0,1630627200000.0,1630713600000.0,1630800000000.0,1630886400000.0,1630972800000.0,1631059200000.0,1631145600000.0,1631232000000.0,1631318400000.0,1631404800000.0,1631491200000.0,1631577600000.0,1631664000000.0,1631750400000.0,1631836800000.0,1631923200000.0],"y":{"__ndarray__":"AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8=","dtype":"float64","shape":[31]}} "x":[1629331200000.0,1629417600000.0,1629504000000.0,1629590400000.0,1629676800000.0,1629763200000.0,1629849600000.0,1629936000000.0,1630022400000.0,1630108800000.0,1630195200000.0,1630281600000.0,1630368000000.0,1630454400000.0,1630540800000.0,1630627200000.0,1630713600000.0,1630800000000.0,1630886400000.0,1630972800000.0,1631059200000.0,1631145600000.0,1631232000000.0,1631318400000.0,1631404800000.0,1631491200000.0,1631577600000.0,1631664000000.0,1631750400000.0,1631836800000.0,1631923200000.0],"y":{"__ndarray__":"AAAAAACAWkAAAAAAAEBaQAAAAAAAAFpAAAAAAAAAWkAAAAAAAABaQAAAAAAAgFpAAAAAAACAWkAAAAAAAIBaQAAAAAAAQFtAAAAAAACAW0AAAAAAAABbQAAAAAAAwFpAAAAAAABAWkAAAAAAAABaQAAAAAAAAFpAAAAAAADAWUAAAAAAAMBZQAAAAAAAgFlAAAAAAACAWUAAAAAAAEBZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAwFlAAAAAAABAWUAAAAAAAMBaQAAAAAAAwFpAAAAAAAAAWkAAAAAAAMBZQAAAAAAAwFlAAAAAAAAA+H8=","dtype":"float64","shape":[31]}}
240.04, 238.12, 237.25, 238.84, 240.6, 243.16, 245.19, 246.53, 248.68, 252.04 106, 105, 104, 104, 104, 106, 106, 106, 109, 110
Офлайн