在python中,我有一个将元组映射到元组列表的字典.例如
{(1,2): [(2,3),(1,7)]}
我希望能够使用javascript对这些数据进行编码,所以我查看了json,但是看起来键必须是字符串,所以我的元组不能作为键.
处理此问题的最佳方法是将其编码为"1,2",然后将其解析为我想要的javascript内容吗?或者是否有更聪明的方法来处理这个问题.
Eli*_*ght 23
你可以考虑说
{"[1,2]": [(2,3),(1,7)]}
Run Code Online (Sandbox Code Playgroud)
然后当你需要获取值时,你可以将键本身解析为JSON对象,所有现代浏览器都可以使用内置JSON.parse方法(我在jQuery.each这里迭代但你可以使用任何东西):
var myjson = JSON.parse('{"[1,2]": [[2,3],[1,7]]}');
$.each(myjson, function(keystr,val){
var key = JSON.parse(keystr);
// do something with key and val
});
Run Code Online (Sandbox Code Playgroud)
另一方面,您可能希望以不同方式构造对象,例如
{1: {2: [(2,3),(1,7)]}}
Run Code Online (Sandbox Code Playgroud)
所以不要说
myjson[1,2] // doesn't work
Run Code Online (Sandbox Code Playgroud)
你可以说,这是无效的Javascript语法
myjson[1][2] // returns [[2,3],[1,7]]
Run Code Online (Sandbox Code Playgroud)
如果你的关键元组是真正的整数对,那么最简单也可能是最简单的方法就是你建议....将它们编码为一个字符串.你可以用一个班轮做到这一点:
>>> simplejson.dumps(dict([("%d,%d" % k, v) for k, v in d.items()]))
'{"1,2": [[2, 3], [1, 7]]}'
Run Code Online (Sandbox Code Playgroud)
这将为您提供一个javascript数据结构,您可以将其拆分以重新获得点数:
'1,2'.split(',')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
45640 次 |
| 最近记录: |