python - 用 json 编码元组的最佳方法

在 python 中,我有一个将元组映射到元组列表的字典。例如

{(1,2): [(2,3),(1,7)]}

我希望能够将此数据与 javascript 一起使用,因此我查看了 json,但似乎键必须是字符串,因此我的元组不能用作键。

处理这个问题的最佳方法是将其编码为“1,2”,然后在 javascript 上将其解析为我想要的内容吗?或者有没有更聪明的方法来处理这个问题。

最佳答案

你可以考虑说

{"[1,2]": [(2,3),(1,7)]}

然后当您需要获取值时,您可以将键本身解析为 JSON 对象,所有现代浏览器都可以使用内置的 JSON.parse 方法(I' m 使用 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
});

另一方面,您可能只想以不同的方式构造对象,例如

{1: {2: [(2,3),(1,7)]}}

所以不要说

myjson[1,2] // doesn't work

这是无效的Javascript语法,你可以说

myjson[1][2] // returns [[2,3],[1,7]]

https://stackoverflow.com/questions/715550/

相关文章:

java - 仅使用字符串和值解析 JSON 对象

javascript - 是否可以通过适当的 JavaScript 字符串转义来利用 JSON 响应

java - gson 在自定义反序列化器中调用标准反序列化

javascript - JSON 对象的增量编码

java - @JsonUnwrapped 的 Jackson 反序列化等价物是什么?

json - 使用 HTTPie 发送嵌套的 JSON 对象

java - 将 JSONObject 转换为 Map

c# - 在 asp.net 中将 JSON 转换为 .Net 对象时出错

json - 对于 Restful API,GET 方法可以使用 json 数据吗?

javascript - 如何确定性地验证 JSON 对象是否未被修改?