用于JSON的Python元组

时间:2012-07-31 07:22:48

标签: python json dictionary

我的数据

(('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}

3 个答案:

答案 0 :(得分:4)

您希望获得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}'

答案 1 :(得分:2)

 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}

答案 2 :(得分:1)

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
}