Нужно получить следующее за найденным слово
Из 1С получены данные. Мне нужно вынуть данные для бота по каждому действующему счетчику. Например, по номеру счетчика получается только первое значение
Результат:
{
"dataType": "data_for_bot",
"data": [
{
"balance": 657.26
},
{
"fullName": «Сидоров И.П.»
},
{
"metersData": [
{
"serialNumber": "738362",
"unit": "куб.м.",
"name": "гор.вода",
"state": "Действует",
"id": "496703a4-0668-11ec-8102-00155d393ce6",
"lastReading": "14,12",
"lastReadingDate": "28.02.2022 0:00:00",
"scale": "0",
"meterType": "hotWater",
},
{
"serialNumber": "00507723",
"unit": "куб.м.",
"name": "горячая вода ",
"state": "Не действует",
"id": "36a7b4a3-b9b1-11e9-80e6-00155de4bdf6",
"lastReading": "20",
"lastReadingDate": "30.06.2021 0:00:00",
"scale": "0",
"meterType": "hotWater",
},
{
"serialNumber": "8091855",
"unit": "",
"name": "горячая вода",
"state": "Не действует",
"id": "2c84bfa1-87fd-11e3-8ac8-000476f87573",
"lastReading": "383",
"lastReadingDate": "26.07.2019 0:00:00",
"scale": "0",
"meterType": "hotWater",
},
{
"serialNumber": "00505818",
"unit": "куб.м.",
"name": "холодная вода ",
"state": "Действует",
"id": "1bb4d89b-b9b1-11e9-80e6-00155de4bdf6",
"lastReading": "346",
"lastReadingDate": "27.01.2022 0:00:00",
"scale": "0",
"meterType": "coldWater",
},
{
"serialNumber": "01538380",
"unit": "",
"name": "электросчетчик",
"state": "Действует",
"id": "b87bcaec-8800-11e3-8ac8-000476f87573",
"lastReading": "37 310",
"lastReadingDate": "18.05.2022 0:00:00",
"scale": "6",
"meterType": "electricity",
}
]
}
]
}
Код:
page = page1с.split()
water = '"serialNumber":'
for w in page:
n = w.find(water)
index_v = -1
if n != -1:
index_v = page.index(water)
number_water = page[index_v + 1]
print('Номер счетчика: ' + number_water)```
Вывод:
Номер счетчика: 738362,
Номер счетчика: 738362,
Номер счетчика: 738362,
Номер счетчика: 738362,
Ответы (1 шт):
Автор решения: Edward Grachev
→ Ссылка
data = {"data": [
{"metersData": [
{
"serialNumber": "738362",
"state": "Действует",
"lastReading": "259,12",
"lastReadingDate": "28.02.2022 0:00:00"
},
{
"serialNumber": "738014",
"state": "Действует",
"lastReading": "296,12",
"lastReadingDate": "28.02.2022 0:00:00"
},
{
"serialNumber": "83781910",
"state": "Не действует",
"lastReading": "9,395",
"lastReadingDate": "30.04.2014 0:00:00"
},
{
"serialNumber": "728380",
"state": "Действует",
"lastReading": "256,08",
"lastReadingDate": "28.02.2022 0:00:00"
}]}]}
result = []
for i in data.get('data')[0].get('metersData'):
if i.get('state') == 'Действует':
number = i.get('serialNumber')
last_reading = i.get('lastReading')
last_reading_date = i.get('lastReadingDate')
result.append(f'Номер счетчика: {number}\nПоследние показания: {last_reading}\nДата последнего чтения: {last_reading_date}')
print(result)
['Номер счетчика: 738362\nПоследние показания: 259,12\nДата последнего чтения: 28.02.2022 0:00:00', 'Номер счетчика: 738014\nПоследние показания: 296,12\nДата последнего чтения: 28.02.2022 0:00:00', 'Номер счетчика: 728380\nПоследние показания: 256,08\nДата последнего чтения: 28.02.2022 0:00:00']