2017-10-08 1 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. 형 딕셔너리의 경우

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

  • 0

    compliance은 dict/json이라고 가정하면 이렇게 할 수 있습니다. 목록에서

    • 저장 키 dicts
    • 그 목록 반복 처리 구축

    코드는 다음과 같이 것 연결된 목록 : @chkri 먼저 체크를 제안한 것처럼

    keyorder = ['Name', 'Status', 'Remarks'] 
    res = [] 
    for key in keyorder: 
        res.append(key + ':' + compliance[key]) 
    
    ', '.join(res) 
    
    'Name:ABC, Status:True, Remarks:No remarks' 
    
    0

    귀하의 데이터가 dict 인 경우 그렇다면이 한 줄 솔루션을 사용해보십시오.

    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'}} 
    
    관련 문제