python如何优雅的解析jsonp数据?

我这有个接口返回的是jsonp数据,我现在是用一种很土的办法来解析jsonp,就是字符串替换把开头的回调函数名和括号去掉然后再像解析普通json一样解析,请问还有其他更加优雅的办法或者内置的库可以解析jsonp吗?

阅读 6.3k
4 个回答

python3

import json, re
JSONP = 'callbackFunction(["customername1","customername2"])'
j = json.loads(re.findall(r'^\w+\((.*)\)$',JSONP)[0])
print(type(j),j)

<class 'list'> ['customername1', 'customername2']

如果你肯定返回的jsonp是安全的情况下可以使用eval

JSONP = 'callbackFunction(["customername1","customername2"])'
def callbackFunction(lists):
    print lists
eval(JSONP)

['customername1', 'customername2']

都是这么操作的啊,我用php也是这么干的。

jsonp只能以GET方式请求,为什么你需要解析jsonp?不是只要拼接好返回的js函数名和它的参数不就行吗


我的回答有误,可以在前端给请求的回调函数中加入参数让后台解析,长知识了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题