String ifade içindeki sayıyı float sayıya çevirme problemim

Pythonda yeniyim. Videolar izleyerek denemeler ile program yazmaya çalışıyorum. İnternette fiyat takip etmek istediğim 2 3 ürün için ufak bir projede liste içinde gelen bir stringi sayıya çevirmede sorun yaşadım. 1.922,56 TL olan bir stringin 1,922.56 şekline nasıl çevirebilirim. samsung monitor fiyat dönüştür kısmı. 3 haneli rakamı çevirdim ama 4 haneli rakam olunca beceremedim. program eksiktir fiyatın düştüğü veya yükseldiği gibi kontrollere sahip değildir…
Düzenleme: program çalışınca ram fiyatı 401,40 tl olarak geliyor ve replace ile virgülü nokta ile değiştirip float ile rakama çeviriyorum. monitör fiyatı 1.922,56 tl geliyor replace ile noktayı virgül olarak değiştiriyorum ama bu seferde 1,922,56 oluyor yapmak istediğim 1,922.56 bizdeki bin ayıracı nokta iken pythonda nokta(.) lı sayı floatı temsil ediyor.

import requests
from bs4 import BeautifulSoup



web_adresi = "https://www.amazon.com.tr/VIPER-STEEL-DDR4-8GB-3000Mhz-CL-16-GAMING-SOGUTUCULU-PVS48G300C6/dp/B07MTVW1R1/ref=Oct_d_otopr_12601944031?pd_rd_i=B07MTVW1R1&pd_rd_r=9055aaf9-6b44-4ddf-9c82-9df5a523bbaf&pd_rd_w=S0dAa&pd_rd_wg=aMXjt&pf_rd_p=4d99e948-4972-4e23-92ce-e036da4e31fa&pf_rd_r=94ADRNCA6PBATC4RE93H&th=1"
web_adresi2 = "https://www.amazon.com.tr/Samsung-LF24T350FHRXUF-FreeSync-Oyuncu-Monit%C3%B6r%C3%BC/dp/B09C8F4KWF/ref=Oct_d_obs_12601904031?pd_rd_i=B09C8F4KWF&pd_rd_r=87b07988-c9f3-4a59-b4c9-4ed9624116c4&pd_rd_w=fAzfp&pd_rd_wg=cbvcx&pf_rd_p=cd80a221-cbda-4080-9f71-f2a40363c154&pf_rd_r=GH4DVKG0FGQ70M3T3K8Y"
header = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36"}

ram_sayfa = requests.get(web_adresi, headers=header)
monitor_sayfa = requests.get(web_adresi2, headers=header)
ram_icerik = BeautifulSoup(ram_sayfa.content, "html.parser")
monitor_icerik = BeautifulSoup(monitor_sayfa.content, "html.parser")

patriot_ram = ram_icerik.find(id="productTitle").getText().strip()
samsung_monitor = monitor_icerik.find(id="productTitle").getText().strip()
ram_fiyat = ram_icerik.find(id="corePriceDisplay_desktop_feature_div").getText().strip().split("TL")
monitor_fiyat = monitor_icerik.find(id="corePriceDisplay_desktop_feature_div").getText().strip().split("TL")

print(patriot_ram, ram_fiyat)
print(samsung_monitor, monitor_fiyat)

patriot_ram_fiyat_donustur = float(ram_fiyat[1].replace(",", "."))
print(patriot_ram_fiyat_donustur)
print(type(patriot_ram_fiyat_donustur))

samsung_monitor_fiyat_donustur = monitor_fiyat[1].replace(".",",")
print(samsung_monitor_fiyat_donustur)

print(type(samsung_monitor_fiyat_donustur))
sayi = "1.922,56"
sayi = sayi.replace(",", "_").replace(".", ",").replace("_", ".")
print(sayi)
# 1,922.56
3 Beğeni

emeğine sağlık arka arkaya replaceler aklıma gelmemişti. elde ettiğim değer str oldu ama üzerinde az denemeler yapayım. fiyat yükseldi düştü gibi işlemler yapmam gerek. Teşekkür ederim sagolasın.

samsung_monitor_fiyat_donustur = float(monitor_fiyat[1].replace(".","").replace(",","."))

1.922,56 yı 1,922.56 yapmak işe yaramadı pythonda binlik sayının ayıracı yok gibi. Fiyatı 1922.56 yapınca matematiksel işlemler yapabildim.

1 Beğeni