Python Tuple到dict到JSON

2024-07-05 09:36:16 发布

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

我的数据

(('check_kvserver_mem_4500000', 2737L), 
 ('check_ethstatus', 250L), 
 ('check_ddos', 229L), 
 ('check_coredump', 193L),
 ('check_robot', 174L),
 ('check_disk_90_95', 155L))

变成这样:print json.dumps(data)

[["check_kvserver_mem_4500000", 2737], 
 ["check_ethstatus", 250],
 ["check_ddos", 229],
 ["check_coredump", 193], 
 ["check_disk_90_95", 155]]

我想要像这样的数据

{["check_kvserver_mem_4500000", 2737],
 ["check_ethstatus", 250]
 ["check_ddos", 229], 
 ["check_coredump", 193], 
 ["check_disk_90_95", 155]}

或者

 {"check_kvserver_mem_4500000":2737,
  "check_ethstatus":250,
  "check_ddos":229, 
  "check_coredump":193,
  "check_disk_90_95":155}

Tags: 数据jsondatacheckrobotmemdiskprint
3条回答
 print json.dumps(dict(data))
 {"check_disk_90_95": 155,
  "check_coredump": 193,
  "check_robot": 174,
  "check_kvserver_mem_4500000": 2737,
  "check_ddos": 229,
  "check_ethstatus": 250}

因此,您需要一个JSON对象,但是您的数据没有键/值结构。因此json.dumps(data)在生成JSON列表而不是对象时做的是正确的事情。无法在无效的JSON对象上匹配元组的Python元组。

编辑

当你改变了你的问题(并删除了我的美丽的编辑),你的问题可以得到回答。

data = (('check_kvserver_mem_4500000', 2737L),
        ('check_ethstatus', 250L),
        ('check_ddos', 229L),
        ('check_coredump', 193L),
        ('check_robot', 174L),
        ('check_disk_90_95', 155L))
print json.dumps(dict(data))

结果是:

'{"check_disk_90_95": 155, "check_coredump": 193, "check_robot": 174,
  "check_kvserver_mem_4500000": 2737, "check_ddos": 229, "check_ethstatus": 250}'
d = dict((('check_kvserver_mem_4500000', 2737L), ('check_ethstatus', 250L), ('check_ddos', 229L), ('check_coredump', 193L), ('check_robot',
174L), ('check_disk_90_95', 155L)))

import json 

print json.dumps(x, indent = 5)

回报

{
     "check_disk_90_95": 155, 
     "check_coredump": 193, 
     "check_robot": 174, 
     "check_kvserver_mem_4500000": 2737, 
     "check_ddos": 229, 
     "check_ethstatus": 250
}

相关问题 更多 >