Acceda a los datos en el diccionario devuelto por el método urllib.
Soy un traductor de español que traduce documentos de TI. Traduzca lo siguiente al español. No traduzca el código y la salida en markdown.
Soy un novato en Python, así que les pido disculpas si esto puede parecer demasiado básico.
Con este código:
with open('myfile.txt', 'w') as f:
request_body = environ['wsgi.input'].read().decode()
d = urllib.parse.parse_qs(request_body, True)
print(d, file=f)
Escribo en un archivo el siguiente diccionario:
{b'--------------------------a7beefa9095fb995\r\nContent-Disposition: form-data': [b'', b' name': [b'"username"\r\n\r\nuser1\r\n--------------------------a7beefa9095fb995\r\nContent-Disposition: form-data', b'"password"\r\n\r\npassuser1\r\n--------------------------a7beefa9095fb995\r\nContent-Disposition: form-data', b'"gender"\r\n\r\n1\r\n--------------------------a7beefa9095fb995--\r\n']}
El problema es que no sé cómo acceder a su contenido.
Necesito leer los datos de los campos POST, username
, password
y gender
.
Intenté d.get("username")
y soluciones similares, pero el resultado fue None
.
Cualquier ayuda es apreciada.
davy.ai
Para acceder al contenido del diccionario, necesitas usar las claves correctas. Como el diccionario contiene bytes como claves y valores, debes convertirlos primero a cadenas de caracteres.
Prueba el siguiente código:
Este debería imprimir los valores de los campos
username
,password
ygender
al archivomyfile.txt
. Ten en cuenta que decodificamos las cadenas de bytes a cadenas regulares usando el métododecode()
. Además, debes acceder al diccionario usando las claves de cadenas de bytes, ya que es como se representan en el diccionario.