我已经多年没有写python代码了,所以我的问题可能很愚蠢和简单。我加载json数据:
import json
data = json.loads('{"hello": "world"}')
在python 2中,我应该这样访问hello
键:data[u'hello']
。因为键是Unicode,所以还有一个u
符号。
在python 3中:data['hello']
。默认情况下为Unicode字符串。
如果我想编写可移植的代码怎么办?
答案 0 :(得分:5)
只要您使用的是Python 3.3或更高版本,就可以在字符串上使用unicode前缀。这样一来,您就可以编写无需更改即可在Python 2和Python 3.3+上运行的代码。
请参见https://www.python.org/dev/peps/pep-0414/
或者,您在代码的顶部执行代码from __future__ import unicode_literals
,然后所有字符串默认为unicode文字,并且即使在Python2中,您也必须在字节字符串之前使用b""
前缀。
答案 1 :(得分:3)
将此添加到文件顶部
$(document).ready(function(){
$.ajax({
type: "POST",
url:"http://192.167.1.16/files/passes.php",
crossDomain: true,
dataType: "jsonp",
data: "param=none",
success: function (data) {
console.log(data);
console.log("success!");
},
error: function (err) {
console.log(err);
console.log("error!");
}
});
});
这仍然与python3中的不完全相同,但是可以帮助您使其可移植。如果愿意同时支持2和3,则必须查看 6 模块,以处理生成器/迭代器,字符串差异。
答案 2 :(得分:1)
data[u'hello']
在python 2和3中均可使用。
但是data.get('hello')
更好。