漂亮的打印 JSON [重复]
Posted
技术标签:
【中文标题】漂亮的打印 JSON [重复]【英文标题】:Pretty Print JSON [duplicate] 【发布时间】:2017-05-01 14:38:33 【问题描述】:我有一个 python 脚本,我想将 JSON 输出打印成如下所示:
"authMode": "open",
"enabled": false,
"ipAssignmentMode": "NAT mode",
"name": "Unconfigured SSID 14",
"number": 13,
"perClientBandwidthLimitDown": 0,
"perClientBandwidthLimitUp": 0,
"splashPage": "None",
"ssidAdminAccessible": false
,
"authMode": "open",
"enabled": false,
"ipAssignmentMode": "NAT mode",
"name": "Unconfigured SSID 15",
"number": 14,
"perClientBandwidthLimitDown": 0,
"perClientBandwidthLimitUp": 0,
"splashPage": "None",
"ssidAdminAccessible": false
但我的输出看起来是这样的:
u'authMode': u'open',
u'enabled': False,
u'ipAssignmentMode': u'NAT mode',
u'name': u'Unconfigured SSID 14',
u'number': 13,
u'perClientBandwidthLimitDown': 0,
u'perClientBandwidthLimitUp': 0,
u'splashPage': u'None',
u'ssidAdminAccessible': False,
u'authMode': u'open',
u'enabled': False,
u'ipAssignmentMode': u'NAT mode',
u'name': u'Unconfigured SSID 15',
u'number': 14,
u'perClientBandwidthLimitDown': 0,
u'perClientBandwidthLimitUp': 0,
u'splashPage': u'None',
u'ssidAdminAccessible': False]
我觉得我缺少一些简单的东西。这是我的代码:
url = "https://dashboard.meraki.com/api/v0/networks/%s/ssids" % NETWORKID
headers = 'X-Cisco-Meraki-API-Key': APIKEY
r = requests.get(url, headers=headers, allow_redirects=True)
pprint (r.json())
【问题讨论】:
您正在使用pprint
,这是一个基本上将数据序列化回本机python语法的模块。如果可能,使用常规 print
会将值作为字符串输出。如果您想将json数据作为字符串获取,我认为您想要r.body
,我认为r.json
是解码后的值,例如,它已经为您转换为原生python类型。
【参考方案1】:
我发现最简单的方法是使用json
模块:
r = requests.get(url, headers=headers, allow_redirects=True)
import json
print(json.dumps(r.json(), indent=2))
是的,这有点多余,因为您正在反序列化然后再次序列化,但它有效。
【讨论】:
以上是关于漂亮的打印 JSON [重复]的主要内容,如果未能解决你的问题,请参考以下文章