2012-06-04 91 views
1

我正在準備api,並使用文檔字符串作爲文檔。 api服務選擇相關的ApiClass方法並加入每個文檔字符串以創建文檔。這樣,api的程序開發人員和用戶都可以獲得相同的文檔。輸出/打印「可讀」字典

我的階級結構是這樣的:

API_STATUS = { 
    1: 'some status', 
    2: 'some other status message' 
} 

class MyApi: 
    def __init__(self): 
     blah blah blah 

    def ApiService1(self, some_param): 
     """ 
     here is the documentation 
      * some thing 
      * some other thing 
     keep on explanation 
     """ 
     do some job 

    def ApiService2(self, some_param): 
     """" 
     Another doc... 
     """ 
     do some other job 

我使用HttpResponse回到最終的文檔字符串。所以,當我請求服務文檔,輸出是相當可讀

ApiService1

here is the documentation 
     * some thing 
     * some other thing 
    keep on explanation 

ApiService2

Another doc... 

所有大了這裏,但有像API_STATUS字典一些變量回答一些列表,我希望將它們添加到文檔中。但是,當我把它解析爲字符串,或致電repr功能,所有格式都不見了

{1:「一些狀態」 2:「其他一些狀態信息」,3:「......」,4 :'........',...}

這使得它不可讀(因爲字典有大約50個元素)。

我不想寫的是下一個文檔字符串(因爲在未來的更新,相關的字典可以被更新和dicstring可能被遺忘)

有沒有一種方式來增加我的字典裏我responsing文檔字符串(然後將其作爲HttpResponse返回),而不刪除串行縮進?

回答

10

使用pprint:

>>> API_STATUS = {1: 'some status', 2: 'some other status message'} 
>>> import pprint 
>>> pprint.pprint(API_STATUS, width=1) 
{1: 'some status', 
2: 'some other status message'} 
+0

謝謝'pprint.pformat'就是我要找 – FallenAngel