جايثون: تحليل النص لتعويم تحتوي على فواصل
-
03-07-2019 - |
سؤال
وكيف يمكنني تحليل تعويم الممسوحة ضوئيا من ورقة كنص، التي تحتوي على فواصل؟
txt = "1,903.44"
value = float(txt) # This fails due to ',' in string
وUPDATE: آسف لأنني لم أكن واضحا. أنا باستخدام جايثون 2.5، التي لا تملك وحدة اللغة.
المحلول
txt = "1,903.44"
value = float(txt.replace(',', ''))
إذا كنت تحتاج إلى الترجمة، وهذا لن يعمل حقا ولكن لا حيلة إذا كنت تعرف أن الفواصل هي الفواصل الخاصة بك.
نصائح أخرى
locale.atof()
بعد locale.setlocale(locale.LC_ALL, '')
.
هل يمكن تجريد الفواصل:
txt = txt.replace(',', '')
value = float(txt)
وأنا شخصيا استخدام حزمة العشرية عند التعامل مع القيم النقدية لتجنب <لأ href = "https://stackoverflow.com/questions/723356/when-is-it-appropriate-to-use-floating-precision- ، أنواع البيانات "> المزالق موثقة جيدا التي تحدث عند استخدام نقطة عائمة.
from decimal import Decimal
txt = txt.replace (',', '')
value = Decimal(txt)
وكما لاحظ ملصقات أخرى، وهذا يعمل فقط إذا كان يعرف لغة لاستخدام '،' كما آلاف فاصل، ولكن يجب أن تحصل على الذهاب في الاتجاه الصحيح.