<p>这对您很有用:</p>
<pre><code>import json
class Script(object):
def __init__(self, name, version, dependency_list):
self.name = name
self.version = version
self.dependency_list = self.parse_dependencies(dependency_list)
def parse_dependencies(self, dep_list):
"""
Take our dependency list and turn it into a list of Dependency objects.
"""
dependency_list = []
for i in xrange(0, len(dep_list), 2):
d = Dependency(dep_list[i], dep_list[i+1])
dependency_list.append(d)
return dependency_list
def output_to_json(self):
"""
Output our self to a dict that can be used in a json.dumps()
"""
context = {
'name': self.name,
'version': self.version,
'dependencies': [c.output_to_json() for c in self.dependency_list]
}
return context
class Dependency(object):
def __init__(self, name, version):
self.name = name
self.version = version
def output_to_json(self):
context = {
'name': self.name,
'version': self.version
}
return context
def make_classes_from_list(list_of_scripts):
"""
Take your list of numbers and turn it into a list of Script
and Dependency objects.
"""
output = []
for i in xrange(0, len(list_of_scripts), 3):
s = Script(list_of_scripts[i], list_of_scripts[i+1], list_of_scripts[i+2])
output.append(s)
return output
listOfScripts = [20, 3, [39, 2, 30, 4], 21, 4, [65, 9, 12, 5]]
list_of_script_objects = make_classes_from_list(listOfScripts)
print(json.dumps([x.output_to_json() for x in list_of_script_objects]))
</code></pre>
<p>然后将输出:</p>
<pre><code>[{"version": 3, "name": 20, "dependencies": [{"version": 2, "name": 39}, {"version": 4, "name": 30}]}, {"version": 4, "name": 21, "dependencies": [{"version": 9, "name": 65}, {"version": 5, "name": 12}]}]
</code></pre>