2010-02-02 13 views
64

Oppure esiste un modo migliore per generare rapidamente il contenuto di un array (multidimensionale o non). Grazie.Qual è l'equivalente di php's print_r() in python?

+4

dovrebbero essere spiegate nella questione, ma: http://php.net/print_r –

+1

Mark: si tratta di una funzione PHP che visualizza sullo schermo il contenuto di qualsiasi variabile, inclusi array o oggetti. –

+0

print_r è una funzione in PHP che può generare una qualsiasi matrice di dimensioni in un formato che mostra le chiavi e i valori. –

risposta

40

L'istruzione python print fa un buon lavoro di formattazione di array multidimesion senza richiedere il numero print_r disponibile in php.

Come la definizione per la stampa indica che ogni oggetto viene convertito in una stringa e come matrici semplici stampano un '[' seguito da un elenco separato da virgole di valori oggetto seguito da un ']', funzionerà per qualsiasi profondità e forma di array.

Per esempio

>>> x = [[1,2,3],[4,5,6]] 
>>> print x 
[[1, 2, 3], [4, 5, 6]] 

Se avete bisogno di formattazione più avanzati di questo, AJ s risposta suggerendo pprint è probabilmente la strada da percorrere.

+0

@ cb160 bella risposta! –

4

print e pprint sono ottimi per tipi di dati o classi incorporati che definiscono una rappresentazione di oggetti sane. Se vuoi una discarica completa di oggetti arbitrari, devi far girare il tuo. Non è così difficile: basta creare una funzione ricorsiva con il caso base costituito da qualsiasi tipo di dati incorporato non contenitore, e il caso ricorsivo applicando la funzione a ciascun elemento di un contenitore o ad ogni attributo dell'oggetto, che può essere ottenuto utilizzando dir() o il modulo inspect.

3
from pprint import pprint 

student = {'Student1': { 'Age':10, 'Roll':1 }, 
      'Student2': { 'Age':12, 'Roll':2 }, 
      'Student3': { 'Age':11, 'Roll':3 }, 
      'Student4': { 'Age':13, 'Roll':4 }, 
      'Student5': { 'Age':10, 'Roll':5 } 
      } 

pprint(student) 
0

se si desidera formattare variable come una stringa si può fare:

s = repr(variable) 

funziona indipendentemente dal tipo, e non Requiere eventuali importazioni.

Se si desidera includere il contenuto di un oggetto in una singola stringa insieme con il suo tipo:

if hasattr(variable, "__dict__"): 
    s = "{}: {}".format(variable, vars(variable)) 
else: 
    s = repr(variable) 
0

Per semplici viste di test che uso HttpResponse.Test richiesta dalla forma, variabile, stringa, id, non oggetto

from django.http.response import HttpResponse 
HttpResponse(variable) 

def add_comment(request, id): 
return HttpResponse(id) 
Problemi correlati