以字符串形式打印json数据

2024-10-01 19:28:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我的模型中有许多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 

任何帮助都将不胜感激


Tags: no字符串name模型idjsontruedata
3条回答

您可以这样做,假设compliance是dict/json

  • 将关键字保存在列表中
  • 遍历该列表并构建一个串联列表

代码如下所示:

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

', '.join(res)

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

检查您的数据是否为dict类型

  1. 如果不是像现在这样打印
  2. 如果是,则将字典发送到另一个函数,该函数执行以下操作

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

正如@chkri建议的,首先检查您的数据是否是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'}}

相关问题 更多 >

    热门问题