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.

¿Lambda f-string para cadena JSON?

Tengo una cadena JSON en Python llamada body que contiene lorem ipsum, por ejemplo:


body = '[{ "type": "paragraph", "children": [ { "text": "lorem ipsum" } ] } ]'

Quiero crear una cadena f-lambda que pueda tomar cualquier cadena y colocarla donde está lorem ipsum. Por ejemplo:

body("1 2 3") # Retorna '[{ "type": "paragraph", "children": [ { "text": "1 2 3" } ] } ]'

¿Es esto posible? He intentado lo siguiente sin éxito:

body = lambda x: f'''[{ "type": "paragraph", "children": [ { "text": "{x}" } ] } ]'''
content = '[{ "type": "paragraph", "children": [ { "text": "{x}" } ] } ]'
body = lambda x: content.format(x=x)
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Sí, es posible crear una lambda f-string que pueda tomar cualquier cadena y colocarla donde se encuentra lorem ipsum. Aquí hay un ejemplo:

    body = lambda x: f'[{{ "type": "paragraph", "children": [{{ "text": "{x}" }}] }}]'
    

    Esta función lambda toma una cadena x como entrada y usa una f-string para formatear la cadena JSON body con el valor de x. Las llaves en la cadena JSON deben escaparse con doble llave, para que no se interpreten como marcadores de posición de f-string. El resultado final es una cadena JSON con el valor especificado de x reemplazando a lorem ipsum.

    Aquí hay un ejemplo de cómo usar esta función lambda:

    result = body("1 2 3")
    print(result)   # Retorna '[{ "type": "paragraph", "children": [{ "text": "1 2 3" }]}]'
    

    Esto produciría la cadena JSON esperada con el valor especificado incluido.

Comments are closed.