Python找不到我的值
我有一个python脚本从我的MySQL数据库中取出我的数据并将其转换为python字典。我试图使用in
关键字在python字典中找到我的会话令牌,但由于某种原因它不起作用。
我试着用这个python函数来看看是否有不同的字符串在结尾处有一个奇怪的格式或字符,但这不起作用:
功能:
def difference(string1, string2):
# Split both strings into list items
string1 = string1.split()
string2 = string2.split()
A = set(string1) # Store all string1 list items in set A
B = set(string2) # Store all string2 list items in set B
str_diff = A.symmetric_difference(B)
isEmpty = (len(str_diff) == 0)
if isEmpty:
print("No Difference. Both Strings Are Same")
else:
print("The Difference Between Two Strings: ")
print(str_diff)
print('The programs runs successfully.')
代码
下面是代码。(这只是一个片段,加密密钥将在启动时更改。)
try:
import Debug
Debug.difference(token, USERS['danielcaminero@plairstudio.com']['session'])
print(token)
print(USERS['danielcaminero@plairstudio.com']['session'])
print(USERS)
# check if user exists
if token not in USERS:
print("Doesnt work :(")
raise Exception('Invalid token')
except:
return {'message': 'Invalid token'}, 401
输出
No Difference. Both Strings Are Same
The programs runs successfully.
2681bd95970590adcd5950a3f7c90ef7
2681bd95970590adcd5950a3f7c90ef7
{'danielcaminero@plairstudio.com': {'password': '44b4cedfad79d8e47d1430b4da4198f72162dbc0d49452d8dc968546e1b48f14', 'role': '1', 'id': 1, 'session': '2681bd95970590adcd5950a3f7c90ef7'}}
Doesnt work :(
127.0.0.1 - - [09/Apr/2023 14:00:52] "GET /protected HTTP/1.1" 401 -
我需要什么
请告诉我什么可能是错误的,或者我如何使这段代码与我的字典结构一起工作,因为我的程序的某些部分依赖于它。
2条答案
按热度按时间pdsfdshx1#
这对你有用吗?
kqlmhetl2#
看起来即使令牌和会话值相同,您的代码也无法在字典中找到会话令牌。出现此问题的一个可能原因可能是存储在字典中的值的数据类型。
当您从MySQL数据库中检索值时,它们可能会以字符串的形式返回。但是,当您将令牌值与字典中的会话值进行比较时,它们可能属于不同的数据类型。
为了确保两个值的数据类型相同,可以在比较它们之前使用
str()
函数将它们转换为字符串。下面是代码的更新版本:通过此更改,令牌和会话值在进行比较之前都将转换为字符串,以确保它们具有相同的数据类型