@tea4panda

Python. можно ли сделать поиск внутри такого текста?

Всем привет!
Очень долго не могу разобраться, можно ли как-то вывести на python все PriceRub?
Чтобы выход, допустим, был таким: 651,8, 723.55.
правильно ли понимаю, что это можно сделать с помощью beatifulSoup?
Не очень понимаю, как делать поиск в таких кодах, если это не элементы внутри html.
Тапками не кидайтесь, я еще очень-очень слабый в этом:))
Благодарю!

{"data":[{"productId":6,"companyId":23,"insuranceSubProductId":26,"territory":{"id":10,"code":"t1","countryGroup":["all","alfa-t1","alfa-no-rus-tha","alpha-finland"]},"insuredDays":7,"sport":null,"currency":"EUR","price":7.63,"priceRub":651.8,"assistances":[{"code":"class","name":"Class Assistance"}],"matchRating":0.6255,"matchDetails":{"totalServices":16,"additionalServices":14,"missingServices":0,"matchingServices":2,"higherSumms":0,"lowerSumms":0,"matchingSumms":1,"expertRaiting":0,"isLimited":0,"priceRating":0.0028,"payoutRating":0.01065},"serviceProduct":{"disasterAssistance":1,"work":0,"foreign":0,"abroad":0,"searchActivities":0,"denge":1,"allergyArresting":1,"chronicArresting":1,"tripCancel":0,"aviaCargo":0,"accident":0,"civilLiability":0,"deathRepatriation":10000,"medicine":30000,"ambulatoryCare":30000,"doctorCall":30000,"hospitalTreatment":30000,"doctorTransportation":30000,"abroadTransportation":30000,"drugRefund":30000,"phoneRefund":100,"urgentStomatology":150,"insuredReturn":1500,"childrenReturn":1500},"info":null,"services":[{"idCalcRules":0,"result":7.630000000000001,"serviceId":"1"}],"infoPerTourist":[{"birthday":"","age":30,"perTourist":[{"idCalcRules":38001,"result":7.630000000000001,"serviceId":1}],"resultPerTourist":7.630000000000001}]},{"productId":9,"companyId":23,"insuranceSubProductId":29,"territory":{"id":10,"code":"t1","countryGroup":["all","alfa-t1","alfa-no-rus-tha","alpha-finland"]},"insuredDays":7,"sport":null,"currency":"EUR","price":8.47,"priceRub":723.55,"assistances":[{"code":"class","name":"Class Assistance"}]
  • Вопрос задан
  • 142 просмотра
Решения вопроса 1
Данные, которые ты написал, в формате JSON. JSON это не html, а значит BeautifulSoup тут бесполезен.
получить данные из этого json'а можно так:

import json
dataString = """{"data":[{"priceRub": 222}, {"priceRub": 333}]}"""
# преобразуем в python-объект
dataJson = json.loads(dataString)

# обходим list
for i in dataJson['data']:
  # получаем нужные поля
  print(i['priceRub'])
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы