[英]python loop breaks on special chars in django template
所以我正在使用django和一個名稱和值的外部列表。 使用自定義模板標記,我試圖在我的html模板中顯示一些值。
以下是列表的外觀示例:
names.txt中
hello 4343.5
bye 43233.4
Hëllo 554.3
whatever 4343.8
我的模板標簽看起來像這樣(變量的簡化名稱):
# -*- coding: utf-8 -*-
from django import template
register = template.Library()
@register.filter(name='operation_name')
def operation_name(member):
with open('/pathtofile/member.txt','r') as f:
for line in f:
if member.member_name in line:
number = float(line.split()[1])
if number is not member.member_number:
member.member_number = number
member.save()
return member.member_number
return 'Not in List'
它適用於沒有特殊字符的條目。 但是當member.member_names中的名稱具有特殊字符時它會停止。 因此,如果member.member_names是Hëllo,整個腳本就會停止。 我不能回報什么。 這真讓我抓狂。 在發生任何帶有特殊字符的名稱后,即使沒有特殊字符的名稱也不會顯示。
我感謝任何幫助,提前謝謝。
編輯:
所以這就行了:
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
但我不知道這是不是一個好的解決方案。
這可能有助於您嘗試將兩者與unicode進行比較: -
if (member.member_name).decode('latin1') in (line).decode('latin1'):
number = float(line.split()[1])
if number is not member.member_number:
member.member_number = number
member.save()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.