2017-09-13 2 views
-1

Im apprentissage Python 2.7, maintenant Cookies, et je trouve un moyen de récupérer les valeurs des cookies à une forme:Comment appliquer une bande à une chaîne de cookie dans Python 2.7?

Le problème est quand:-je utiliser le if condition, pour vérifier si une clé existe.

Im essayant obtenir UserID et Password, en utilisant ceci:

if "HTTP_COOKIE" in os.environ: 
    cookies = os.environ['HTTP_COOKIE'] 
    cookies = cookies.split(';') 
    print cookies 
    for cookie in cookies: 
     cookie = cookie.split('=') 
     (key,value) = cookie 
     if key == "UserID": 
      user_id = value 
     if key == "Password": 
      password = value 

et l'imprimer avec ceci:

print "User ID = %s" % user_id 
print "Pasword = %s" % password 

Mais seulement obtenir ce sous la forme:

User ID = XYZ 

Im assurez-vous que l'erreur est dans la chaîne de cookies, car dans la première condition, il obtient true valeur, mais pour le reste que se false

imprimer dans les parties diferently sur le code, et obtenir que chaque liste après UserID ont un des espaces:

['UserID=XYZ', ' Password=XYZ123', ' Expires=Tuesday, 31-Dec-2007 23:12:40 GMT', ' Domain=www.tutorialspoint.com', ' Path=/perl', ' PHPSESSID=vgpp18anpc6vb4epi3udkumufp'] 

Comment puis-je enlever les cookies pour le obtenir les paires clé-valeur sans espace ?

Voici le code complet:

#!C:/Python27/python.exe 
import os 

print "Set-Cookie:UserID=XYZ" 
print "Set-Cookie:Password=XYZ123" 
print "Set-Cookie:Expires=Tuesday, 31-Dec-2007 23:12:40 GMT" 
print "Set-Cookie:Domain=www.tutorialspoint.com" 
print "Set-Cookie:Path=/perl" 
print "Content-type:text/html\r\n\r\n" 
print "<html>" 
print "<head>" 
print "<title>Radio - Fourth CGI Program</title>" 
print "</head>" 
print "<body>" 
print "<h2> Kha </h2>" 
print "</body>" 
print "</html>" 


if "HTTP_COOKIE" in os.environ: 
    cookies = os.environ['HTTP_COOKIE'] 
    cookies = cookies.split(';') 
    for cookie in cookies: 
     cookie = cookie.split('=') 
     (key,value) = cookie 
     if key == "UserID": 
      user_id = value 
     if key == "Password": 
      password = value 
else: 
    print "HTTP_COOKIE not set!" 

print "User ID = %s" % user_id 
print "Pasword = %s" % password 
+0

essayer 'biscuit = cookie.strip() split ('=') ' – LeoTao

+0

@LeoTao ne fonctionne pas –

Répondre

0

L'erreur était dans la fonctionalité de la bande.

strip(): 
  • supprime uniquement les espaces au début et à la fin du document.
  • fonctionne uniquement avec des chaînes, non pas avec une liste

Et ce happend:

if "HTTP_COOKIE" in os.environ: 
    cookies = os.environ['HTTP_COOKIE'] 
    # cookies is now a string 
    cookies = cookies.split(';') 
    # cookies is now a list 

La solution est de mettre le ruban() afecter cookies asignation, mais le funtion ne supprimera pas tous les espaces blancs .

Parce que je peux utiliser replace(" ","")

if "HTTP_COOKIE" in os.environ: 
     cookies = os.environ['HTTP_COOKIE'] 
     # cookies is now a string without spaces 
     cookies = cookies.replace(" ","") 
     # cookies is now a list 
     cookies = cookies.split(";") 

Résultat:.

ID utilisateur = XYZ Pasword = XYZ123