ווטסאפ - לינוקס, BSD, קוד פתוח ותוכנה חופשית בעברית. Whatsup - Linux, BSD, open source and free software in Hebrew

 
 
  כניסת חברים · רישום · שכחתי סיסמה  
tux the penguin
תגובה לנושא
צפיה בנושא הבא Printable version התחבר כדי לבדוק הודעות פרטיות צפיה בנושא הקודם
אורח · ·
 

הודעה פורסם: 28/12/2016 - 23:03
נושא ההודעה: טיפול במחרוזות UNICODE בפייתון

שלום
אני לומד פייתון (מנסה ללמוד לפחות )
יש לי קובץ טקסט בutf-8 המכיל מחרוזות בעברית
קראתי וניתחתי אותו לתוך רשימה של אובייקטים בפייתון כך:
קוד:

chomp=lambda s : s.strip("\r\n")
with codecs.open(cities_f,'r', 'utf-8') as in_f2:
    cities_lines = map(chomp, in_f2.readlines())
    cities_list  = map(lambda c: City(c[0-3],c[5:]),cities_lines)


כאשר אני מנסה להשתמש בformat:
קוד:

    def __str__(self):
          return "{}-->{}".format(self.code ,self.name)


למשל:
קוד:
str=str(cities_list)

אני מקבל את השגיאה:
קוד:
    return "{}-->{}".format(self.code ,self.name)
UnicodeEncodeError: 'ascii' codec can't encode character u'\u05e0' in position 0: ordinal not in range(128)


אני מניח שאני צריך להמיר את המחרוזת "{}-->{}" לunicode.
אשמח לקבל הכוונה, וגם הפנייה להסבר קריא ונהיר לגבי זה, התעוד של python הרבה יותר ארוך ממה שאני רוצה לקרוא בשלב הזה של הלימוד של השפה. Very Happy
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
mksoftלא בפורום כעתSite Admin ת.הצטרפות: 17/03/2002 · הודעות: 10514 · מיקום: כדור הארץ
 

הודעה פורסם: 29/12/2016 - 11:59
נושא ההודעה:

לא ציינת את גרסת הפייתון שאתה משתמש בה (אחד השינויים הגדולים בפייתון 3 הוא הטיפול ביוניקוד)

בד"כ יש לציין שהמחרוזת היא יוניקוד ע"י prefix של u למחרוזת (זה פייתון 2):

קוד:
u"{}-->{}"


נ.ב.

__str__ בפייתון 2 אמורה להחזיר string

_________________
הבלוג שלי
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית שלח דוא\ ביקור באתר המפרסם  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
אורח · ·
 

הודעה פורסם: 29/12/2016 - 17:46
נושא ההודעה:

תודה!
אכן מדובר על python2
אם לא נהוג להשתמש ב__str__, במה כדאי להשתמש? gsh; לייצר מתודה בשם utf_8? (מה מקובל לעשות)
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
mksoftלא בפורום כעתSite Admin ת.הצטרפות: 17/03/2002 · הודעות: 10514 · מיקום: כדור הארץ
 

הודעה פורסם: 31/12/2016 - 20:57
נושא ההודעה:

יש את __unicode__.

_________________
הבלוג שלי
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית שלח דוא\ ביקור באתר המפרסם  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
הצגת הודעות מלפני:     
מעבר אל:  
כל הזמנים הם GMT + 2 שעות
תגובה לנושא
צפיה בנושא הבא Printable version התחבר כדי לבדוק הודעות פרטיות צפיה בנושא הקודם
PNphpBB2 © 2003-2004 

תוכן הדיון

  1. אורח
  2. mksoft
  3. אורח
  4. mksoft