es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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.

Tags:  , , , ,

Answer

  1. Avatar for 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:

    with open('myfile.txt', 'w') as f:
        request_body = environ['wsgi.input'].read().decode()
        d = urllib.parse.parse_qs(request_body, True)
        username = d[b'name'][0].decode()
        password = d[b'password'][0].decode()
        gender = d[b'gender'][0].decode()
        print(f'Nombre de usuario: {username}', file=f)
        print(f'Contraseña: {password}', file=f)
        print(f'Género: {gender}', file=f)
    

    Este debería imprimir los valores de los campos username, password y gender al archivo myfile.txt. Ten en cuenta que decodificamos las cadenas de bytes a cadenas regulares usando el método decode(). Además, debes acceder al diccionario usando las claves de cadenas de bytes, ya que es como se representan en el diccionario.

Comments are closed.