Articles of formato de cadena de

Python 3.6+ formatea cadenas de desempaquetar diccionarios con claves faltantes

En Python3.4 puedes hacer lo siguiente: class MyDict(dict): def __missing__(self, key): return “{%s}” % key Y luego algo como: d = MyDict() d[‘first_name’] = ‘Richard’ print(‘I am {first_name} {last_name}’.format(**d)) Impresión, como se esperaba: I am Richard {last_name} Pero este fragmento de código no funcionará en Python3.6 +, devolviendo un KeyError al intentar obtener el last_name […]

¿Por qué alguna vez usaría algo más que% r en el formato de cadena de Python?

De vez en cuando uso el formato de cadena de Python. Esto se puede hacer así: print(‘int: %i. Float: %f. String: %s’ % (54, 34.434, ‘some text’)) Pero, esto también se puede hacer así: print(‘int: %r. Float: %r. String: %r’ % (54, 34.434, ‘some text’)) Además de usar% s: print(‘int: %s. Float: %s. String: %s’ […]

Python: escritura de múltiples diccionarios nesteds en una tabla en un archivo de texto separados por una pestaña

Soy nuevo en Python y estoy luchando con la impresión de varios diccionarios nesteds en una tabla separada por pestaña. Escribí un script para leer datos de un archivo de entrada y almacenar los datos en 3 diccionarios diferentes: d1 = {‘Ben’: {‘Skill’: ‘true’, ‘Magic’: ‘false’}, ‘Tom’: {‘Skill’: ‘true’, ‘Magic’: ‘true’}} d2 = {‘Ben’: {‘Strength’: […]

privilegios mysql de tela de python

Intentando establecer privilegios de usuario mysql con la tela. run(“mysql -u %s -p%s -e ‘grant all on %s.* to ‘%s’@’localhost’ identified by ‘PASSWORD'” % (user, dbpasswd, account)) Error TypeError: not enough arguments for format string Alguna idea ? Muchas gracias ! run(‘mysql -u %s -p%s -e “grant all on %s.* to ‘%s\’@\’localhost’ identified by ‘PASSWORD'”‘ […]

Obtener claves de plantilla

Me gustaría obtener una lista de todos los posibles argumentos de palabras clave que una plantilla de cadena podría usar en una sustitución. ¿Hay una manera de hacer esto que no sea re? Quiero hacer algo como esto: text=”$one is a $lonely $number.” keys = get_keys(text) # keys = (‘one’, ‘lonely’, ‘number’) Estoy escribiendo un […]

¿Cómo usar un punto en cadenas de formato Python?

Quiero formatear una cadena y poder usar el operador de puntos, para poder construir cadenas de plantillas que contengan, por ejemplo, {user.name} , {product.price} . Intenté esto: ‘Hello {user.name}’.format( {‘user’: { ‘name’: ‘Markus’ } } ) KeyError: ‘user’ ‘Hello {user.name}’.format( **{‘user’: { ‘name’: ‘Markus’ } } ) AttributeError: ‘dict’ object has no attribute ‘name’ ¿Hay […]

Definición precisa de formato de cadena flotante?

¿Se define el siguiente comportamiento en la documentación de Python (Python 2.7)? >>> ‘{:20}’.format(1e10) ‘ 10000000000.0’ >>> ‘{:20g}’.format(1e10) ‘ 1e+10′ De hecho, el primer resultado me sorprende: la documentación indica que no indicar el tipo de formato (‘f’, ‘e’, ​​etc.) para flotadores es equivalente a usar el formato general ‘g’. Este ejemplo muestra que este […]

¿Por qué usar una lista como parámetro de formato de cadena, incluso sin el identificador% s, devuelve la cadena original?

>>> ‘string with no string formatting markers’ % [‘string’] ‘string with no string formatting markers’ >>> ‘string with no string formatting markers’ % (‘string’,) Traceback (most recent call last): File “”, line 1, in TypeError: not all arguments converted during string formatting Espero que ambos casos TypeError un TypeError , pero este no es el […]

python: puntos en el nombre de la variable en una cadena de formato

Digamos que tengo un diccionario con puntos en el nombre de los campos, como {‘person.name’: ‘Joe’} . Si quisiera usar esto en str.format de str.format , ¿es posible? Mi primer instinto fue ‘Name: {person.name}’.format(**{‘person.name’: ‘Joe’}) pero esto solo funcionaria si mi dict fuera una forma {‘person’:{‘name’:Joe}} La sección de documentos del manual correspondiente no menciona […]

string.format () con marcadores de posición opcionales

Tengo el siguiente código de Python (estoy usando Python 2.7.X): my_csv = ‘{first},{middle},{last}’ print( my_csv.format( first=’John’, last=’Doe’ ) ) Obtengo una excepción KeyError porque no se especifica ‘middle’ (esto es lo esperado). Sin embargo, quiero que todos esos marcadores de posición sean opcionales. Si no se especifican los parámetros nombrados, espero que se eliminen los […]