注意:这不适用于web编程。我们使用javascript与底层硬件接口,因此我们不要使用jqueryapi等
我有一个在设备上执行一系列操作的javascript文件,还有一个python文件,稍后将调用它来验证这些操作。javascript文件和python文件中都有一组硬编码的硬件信息。我想通过将这些信息放入一个JSON文件来避免信息的重复,这样双方都可以访问它。你知道吗
// Javascript
var hardware_info = JSON.parse(load('hardware.json'));
// load() is probably not standard javascript API, but it basically copies that code into the existing script.
此步骤已失败,因为“hardware.json
”未使用javascript语法。。。你知道吗
我已经使用jshint/jslint验证了json,hardware.json
如下所示:
{
"hardware1": {
"ID": "xxx"
},
"hardware2": {
"ID": "yyy"
}
}
下面的Python可以很好地访问json,但没有太多内容:
with open('hardware.json', 'r') as f:
data = json.load(f)
它看起来像是
load()
执行指定的文件,而不是读取它并返回内容。如果这是您读取另一个文件的only选项,那么我建议您使用JSONP而不是JSON。你知道吗JSONP通过在数据周围添加回调来工作。而不是:
该文件包含一个函数调用,其中传递的数据为:
这意味着由JavaScript引擎执行,使其执行回调。
load()
将执行文件,结果将调用回调函数,传递数据。你知道吗在web上使用时,您会调用一个JSONP服务并传入该服务应该添加的回调的名称,但是在JS引擎和Python之间共享一个配置文件时,您会硬编码该回调名称。你知道吗
在Python中,在将回调文本作为JSON数据加载之前,必须去掉它。这可能与删除前N个和后M个字符一样简单:
稍微复杂一点的技术可以使用新词:
更容易删除Python中的第一行和最后一行。或者可以使用
jsonp_data.partition('(')[-1].jsonp.rpartition(')')[0]
获取字符串中第一个(
和最后一个)
字符之间的所有内容。等等相关问题 更多 >
编程相关推荐