Javascript Python 2.7上的数据处理JSONP?

Javascript Python 2.7上的数据处理JSONP?,javascript,python,json,python-2.7,jsonp,Javascript,Python,Json,Python 2.7,Jsonp,例如,我从供应商处获得这些数据 我应该如何在Python2.7上提取v值?我听说这是JSONP,而不是真正的JSON,这似乎不是很多人在这方面的经验 JSONP被设计为由JavaScript回调函数使用。在Python中没有安全简单的方法来解析它。JSONP数据在我看来有点奇怪,因为键是变量名而不是字符串 无论如何,如果你觉得鲁莽,你可以这样做: 输出 上面的代码使用正则表达式引用键,将它们转换为正确的字符串,以便数据符合Python dict语法,然后使用exec创建dict 请注意,对您无法

例如,我从供应商处获得这些数据


我应该如何在Python2.7上提取v值?我听说这是JSONP,而不是真正的JSON,这似乎不是很多人在这方面的经验

JSONP被设计为由JavaScript回调函数使用。在Python中没有安全简单的方法来解析它。JSONP数据在我看来有点奇怪,因为键是变量名而不是字符串

无论如何,如果你觉得鲁莽,你可以这样做:

输出

上面的代码使用正则表达式引用键,将它们转换为正确的字符串,以便数据符合Python dict语法,然后使用exec创建dict


请注意,对您无法控制的数据使用exec或eval本质上是一种危险的做法。请参见Stack Overflow Stallwart Ned Batchelder。

自从格式更改后,实际数据是什么样子的:如果不知道格式的规则,就很难知道,例如,在开始之前是否总是有4个字符{可以剥离吗?,以及这种格式的更改频率。基本上,WSDLs就是为了这个目的而发明的:描述和版本化接口规则,如果没有类似的东西,您需要问任何构建接口的人都会问的问题。导入重新导入urllib2 def main:urlreq=urllib2.Request,Header={'User Agent':'Mozilla/5.0'}pat=re.compiler'[a-z]+:'exec pat.subr'\1':,urlreq print I,I['v']if name='main':main ______________________________________________________。网址http://www.domain.com/test.js 返回404 Page not found错误。但要从urllib2.Request获取HTML,首先需要打开请求对象,例如handle=urllib2.urlopenurlreq。如果成功,则应使用try进行检查:…除了IOError块之外,您可以使用handle.read;页面标题作为字符串获取URL的内容rs由handle.info返回。如果您需要有关urllib2的更多帮助。当然,请先搜索现有答案后再提出新问题。
I = {
        t: '2015/02/02 16:01',
        c: '207.05',
        v: '484.74',
        n: '324.37'
};
#! /usr/bin/env python

import re

datastr = '''
I = {
    t: '2015/02/02 16:01',
    c: '207.05',
    v: '484.74',
    n: '324.37'
}
'''

def main():
    pat = re.compile(r'([a-z]+):')
    exec pat.sub(r"'\1':", datastr)
    print I, I['v'] 

if __name__ == '__main__':
    main()
{'c': '207.05', 'n': '324.37', 't': '2015/02/02 16:01', 'v': '484.74'} 484.74