所以我正在使用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')
但我不知道这是否是一个很好的解决方案。
答案 0 :(得分:1)
这可能有助于您尝试将两者与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()