我有一个数组。我正在使用Tornado
用于WebSockets而我正在使用json
。
servers = {
'server1': {
'id1': {
'message': 'msg from id1',
'message2': 'msg2 from id1'
'conn': "(here's Tornado WebSocket class - WebSocket connection)"
},
'id2': {
...
}
},
'server2': {
...
}
}
我想向每个用户发送json.dumps(servers['server1'])
,但我不想用conn
密钥发送它。是否有像私人(隐藏)键的东西?我想做json.dumps(servers['server1'])
,我想要的输出是:
'id1': {
'message': 'msg from id1',
'message2': 'msg2 from id1'
},
...
答案 0 :(得分:3)
不,python中没有私有或公共概念。您可以使用嵌套理解:
message = {id_key:{k:data for k,data in id_val.items() if k != 'conn'}
for id_key,id_val in servers['server1'].items()}
答案 1 :(得分:1)
是的,您可以使用非字符串键来模拟它们:
conn_key = object() # sentinel value
servers = {
'server1': {
'id1': {
'message': 'msg from id1',
'message2': 'msg2 from id1'
conn_key: "(here's Tornado WebSocket class - WebSocket connection)"
},
'id2': {
...
}
},
'server2': {
...
}
}
print servers['server1']['id1'][conn_key]
json.dumps(servers, skipkeys=True)