您能执行系统调用吗?您可以使用类似这样的Python脚本将pickle数据转换为json:
import sys, optparse, cPickle, os
try:
import json
except:
import simplejson as json
parser = optparse.OptionParser()
parser.add_option('-p','--pickled_data_path',dest="pickled_data_path",type="string",help="Path to the file containing pickled data.")
parser.add_option('-j','--json_data_path',dest="json_data_path",type="string",help="Path to where the json data should be saved.")
opts,args=parser.parse_args()
if opts.pickled_data_path:
unpickled_data = cPickle.loads(open(opts.pickled_data_path).read())
else:
unpickled_data = cPickle.loads(sys.stdin.read())
if opts.json_data_path:
open(opts.json_data_path, 'w').write(json.dumps(unpickled_data))
else:
print json.dumps(unpickled_data)
这样,如果您从文件中获取数据,可以这样做:
<?php
exec("python pickle2json.py -p pickled_data.txt", $json_data = array());
?>
如果您想将它保存到文件中,可以使用以下方法:
<?php
system("python pickle2json.py -p pickled_data.txt -j p_to_j.json");
?>
上面的代码可能不完美(我不是PHP开发人员),但是这样的东西对你是否有用呢?