簡體   English   中英

python循環打破django模板中的特殊字符

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM