2017-10-08 31 views
-3

我的模型中有很多json字段。我想以字符串格式打印它們。以字符串格式打印json數據

我使用的代碼是:

data=[] 
detail=details.objects.filter(Id=item['Id']) 
for i in compliance: 
    data.append(str("Name")+str(":")+str(i.Name)+str(" , ")+str("Details")+str(":")+str(i.Details) 

print data 

我得到的輸出是:

Name:ABC, Details:{u'Status': u'True', u'Remarks': u'No Remark'} 

的預期結果是:

Name:ABC, Details:Status:True,Remarks:No Remark 

任何幫助將不勝感激。

+0

你的預期成果是不是有效的JSON – Neo

+0

不要連接字符串。將它們追加到列表並使用'str.join'方法 – Vinny

回答

0

檢查,如果你的數據類型字典的

  1. 如果沒有打印爲你現在
  2. 做的,如果是,則發送詞典到另一個函數做如下

    def print_dict(d): return ",".join([key+":"+str(d[key]) for key in d])

0

你可以這樣做,假設compliance是一個字典/ json。

  • 保存在列表中的關鍵類型的字典
  • 遍歷該列表,並建立一個連續清單

代碼應該是這樣的:

keyorder = ['Name', 'Status', 'Remarks'] 
res = [] 
for key in keyorder: 
    res.append(key + ':' + compliance[key]) 

', '.join(res) 

'Name:ABC, Status:True, Remarks:No remarks' 
0

由於@chkri首先建議檢查如果你的數據是字典,如果是的話,那麼你可以嘗試這一行解決方案:

dict={'Name':'ABC', 'Details':{u'Status': u'True', u'Remarks': u'No Remark'}} 


print({k:v for k,v in dict.items()}) 

輸出:

{'Name': 'ABC', 'Details': {'Remarks': 'No Remark', 'Status': 'True'}}