python说苹果不等于苹果
我在django代码中遇到了一个奇怪的情况,python拒绝接受两个字符串相等:python说苹果不等于苹果,python,django,python-3.x,Python,Django,Python 3.x,我在django代码中遇到了一个奇怪的情况,python拒绝接受两个字符串相等: def depticon(depta): print(f'depta is {depta}') print(f'Testing |{depta}| against |Ear, Nose, Throat|') if depta=="Ear, Nose, Throat": icon = "ear.png" print("Matched ENT")
def depticon(depta):
print(f'depta is {depta}')
print(f'Testing |{depta}| against |Ear, Nose, Throat|')
if depta=="Ear, Nose, Throat":
icon = "ear.png"
print("Matched ENT")
else:
print("No match")
icon = "health-sign.png"
print(f'Icon is {icon}')
return icon
这就是它的名字。这里,诊所是一个查询集:
specialties = []
specialtytext = []
specialtyicon = []
for clinic in clinics:
if clinic.doctorid.dept not in specialties:
dept = clinic.doctorid.department
specialties.append(dept)
specialtytext.append(depttext(dept))
specialtyicon.append(depticon(dept))
请参见输出:
depta is Ear, Nose, Throat
Testing |Ear, Nose, Throat| against |Ear, Nose, Throat|
No match
Icon is health-sign.png
我将
|
字符放在字符串周围,以检查字符串中是否有任何特殊字符。我怀疑depta
参数的类型不是str
,这就是为什么它与str
值“Ear,Nose,though”不匹配的原因。在进一步使用之前,请尝试将部门
值传递给str()
有趣的事实:
print()。在进一步使用之前,请尝试将部门
值传递给str()
有趣的事实:print()
函数使用str()
自动转换参数。可能字符串的类型不同。请通过print(type(depta))
Oops打印depta的类型。我没有想到自动铸造。这不是你的问题,但为什么在一个地方使用clinic.doctorid.depart
,在另一个地方使用clinic.doctorid.depart
?“部门”和“部门”的区别是什么?@JimDeLaHunt我才明白你的意思。那是个错误。我应该在这两个地方都使用clinic.doctorid.dept。你应该展示你的模型。除了您看到的问题之外,当然还有一种更有效的方法可以做到这一点。可能字符串的类型不同。请通过print(type(depta))
Oops打印depta的类型。我没有想到自动铸造。这不是你的问题,但为什么在一个地方使用clinic.doctorid.depart
,在另一个地方使用clinic.doctorid.depart
?“部门”和“部门”的区别是什么?@JimDeLaHunt我才明白你的意思。那是个错误。我应该在这两个地方都使用clinic.doctorid.dept。你应该展示你的模型。除了你看到的问题之外,当然还有一种更有效的方法。