2013-04-18 12 views
8

Se stampo un dizionario usando pprint, si avvolge sempre stringhe intorno singoli apici ('):pprint(): come utilizzare le virgolette per visualizzare le stringhe?

>>> from pprint import pprint 
>>> pprint({'AAA': 1, 'BBB': 2, 'CCC': 3}) 
{'AAA': 1, 'BBB': 2, 'CCC': 3} 

C'è un modo per dire pprint usare le virgolette (") invece? Vorrei avere il seguente comportamento:

>>> from pprint import pprint 
>>> pprint({'AAA': 1, 'BBB': 2, 'CCC': 3}) 
{"AAA": 1, "BBB": 2, "CCC": 3} 
+3

Perché * è necessario * virgolette doppie? 'pprint()' usa solo il risultato 'repr()' delle stringhe, che userà ''' a meno che non sia contenuta una citazione letterale '' '. –

+0

Forse stai cercando 'json.dumps()'? JSON usa le doppie virgolette per le stringhe ... –

+0

Grazie a @Martijn, 'json.dumps()' fa quello che mi serve. Puoi postarlo come risposta? –

risposta

13

Sembra che tu stia cercando di produrre JSON; in tal caso, utilizzare json module:

>>> import json 
>>> print json.dumps({'AAA': 1, 'BBB': 2, 'CCC': 3}) 
{"AAA": 1, "BBB": 2, "CCC": 3} 
+1

Questo corregge le virgolette singole-> doppie, ma questo non è sufficiente per la visualizzazione manuale perché non stampa l'output. – travelingbones

+0

@travelingbones il punto era che l'OP stava cercando di produrre JSON e stava usando lo strumento sbagliato. In realtà non stavano cercando di fare una bella stampa! Detto questo, la funzione 'json.dumps()' può essere configurata per una bella stampa, fino a un certo punto. –

+0

Capisco. Sto affrontando lo stesso problema, ma ho bisogno di entrambi - Ho bisogno di leggere manualmente l'output JSON e collegarlo a qualcosa che richiede il formato .json. Volevo solo includere le informazioni che ho trovato-- che in effetti cambia le virgolette singole a doppie, ma non le stampa bene. – travelingbones