<p>在我决定没有时间去处理JSON和PHP的复杂性之后,我决定编写一个python脚本来完成这项工作。它是基于纯文本处理的,如果需要的话可以被其他人修改。原文如此:</p>
<pre><code>#!/usr/bin/python
''' A file that will read the text in the php file and add each array as
a dictionary item to a dictionary and saves it as a dictionary.
'''
import pickle
import pdb
file_name = 'lgvalues-abscissa.php'
#file_name = 'lgvalues-weights.php'
text = 'legendre_roots['
#text = 'quadrature_weights['
def is_number(s):
try:
float(s)
return True
except ValueError:
return False
mydict = dict()
lst = []
ft = open(file_name,'rt')
file_lines = ft.readlines()
for i, l in enumerate(file_lines):
if l.find(text) != -1:
key = l.split()[0]
key = [key[l.find('[')+1:l.find(']')],]
continue
if is_number(l.strip()[:16]):
lst.append(float(l.strip()[:16]))
if l.strip()[-2:] == ');':
if int(key[0]) != len(lst):
print 'key %s does not have the right amount of items.'\
%(key[0])
tempdict = {}
tempdict = tempdict.fromkeys(key,lst)
mydict.update(tempdict)
lst = []
file_name = file_name[:-4]+'.dat'
fb = open(file_name,'wb')
pickle.dump(mydict,fb)
print 'Dictionary file saved to %s' % (file_name)
fb.close()
</code></pre>
<p>是的,它对我的情况非常特殊,但是如果有时间修改代码,并且在PHP-JSON方面得不到太多帮助,可能会对他们有所帮助。在</p>