<p>我正在将XML文件转换为JSON文件。为此,我打开xml,使用<code>xmltodict</code>模块,然后使用.get方法将树遍历到我想要的级别。这一层是叶子的父母。然后我检查某个条件,其中每个<code>task</code>的一些叶子是真的,如果是真的,那么我使用<code>json.dumps()</code>并将其写入文件。问题是(我想这就是它的来源)当我只在文件中附加一个JSON对象时,它不会在对象的末尾附加逗号,因为它认为它是唯一的对象。我试图通过在每个JSON对象的末尾添加一个','来解决这个问题,但是当我尝试使用<code>json.loads()</code>方法时,它给了我一个错误,说“没有JSON对象可以解码”。但是,当我手动将“[”和“]”附加到文件中时,不会出现错误。我的代码如下,如果您有任何帮助/建议,我将不胜感激。</p>
<pre><code>def getTasks(filename):
f = open(filename, 'r')
a = open('tasksJSON', 'w')
a.write('[')
d = xmltodict.parse(f)
l = d.get('Project').get('Tasks').get('Task')
for task in l:
if (task['Name'] == 'dinner'): #criteria for desirable tasks
j = json.dumps(task)
a.write (str(j))
a.write(',')
a.write(']')
f.close()
a.close()
</code></pre>
<p>这样可以工作并将所有内容放入<code>tasksJSON</code>中,但正如我所说,当我调用</p>
<pre><code>my_file = open('tasksJSON', 'r')
data = json.load(my_file) # LINE THAT GIVES ME ERROR
</code></pre>
<p>我说错话了</p>
<pre><code>ValueError: No JSON object could be decoded
</code></pre>
<p>输出文件包含:</p>
<pre><code>[{"UID": "4", "ID": "14", "Name": "Design"},{"UID": "5", "ID": "15", "Name": "Basic Skeleton"}]
^
this is the comma I manually inserted
</code></pre>