2013-07-09 3 views
12

मेरे पास एक स्क्रिप्ट है जो एक सीएसवी फ़ाइल से डेटा पार्स करती है। निम्न पंक्ति मुझे समस्याओं दे रहा है:पायथन: आधार 10 के साथ int() के लिए अमान्य शाब्दिक: '808.666666666667'

ValueError: invalid literal for int() with base 10: '808.666666666667' 

इस प्रकार csv फ़ाइल की लाइन के रूप में:

2013-06-12 15:09:00,svcName,0,0,10,808.666666666667 

मैं चल रहा कोशिश की है

countData.append([timeStamp,int(my_csv[row][5])]) 

यह मुझे निम्न त्रुटि देता है एक पाइथन प्रॉम्प्ट में int(808.666666666667) और यह ठीक काम करता है।

+11

रन 'int (' 808.666666666667 ')' और आपको समस्या दिखाई देगी। –

+0

क्या आप हमें बता सकते हैं कि 'my_csv [पंक्ति] [5] 'क्या है? –

उत्तर

28

मदद से int पर:

int(x, base=10) -> int or long

If x is not a number or if base is given, then x must be a string or Unicode object representing an integer literal in the given base.

तो, '808.666666666667' गलत शाब्दिक int के लिए किसी भी base के लिए, इस्तेमाल होता है:

>>> int(float('808.666666666667')) 
808 

int(808.666666666667) रन ठीक है क्योंकि आप इसे करने के लिए एक नाव से गुजर रहे हैं , एक स्ट्रिंग शाब्दिक नहीं है।

+0

धन्यवाद। My_csv [पंक्ति] [5] का आउटपुट हमेशा एक स्ट्रिंग था जो आज तक एक पूर्णांक का प्रतिनिधित्व करता है। मैं देखता हूं कि इसकी अनुमति थी, लेकिन एक स्ट्रिंग फ्लोट/दशमलव नहीं। – imagineerThat

संबंधित मुद्दे