回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我有一个JSON文件要转换成CSV文件。我怎么能用Python做到这一点?</p>
<p>我试过:</p>
<pre class="lang-py prettyprint-override"><code>import json
import csv
f = open('data.json')
data = json.load(f)
f.close()
f = open('data.csv')
csv_file = csv.writer(f)
for item in data:
csv_file.writerow(item)
f.close()
</code></pre>
<p>然而,它没有起作用。我正在使用Django,收到的错误是:</p>
<blockquote>
<p><code>file' object has no attribute 'writerow'</code></p>
</blockquote>
<p>然后我尝试了以下方法:</p>
<pre class="lang-py prettyprint-override"><code>import json
import csv
f = open('data.json')
data = json.load(f)
f.close()
f = open('data.csv')
csv_file = csv.writer(f)
for item in data:
f.writerow(item) # ← changed
f.close()
</code></pre>
<p>然后我得到错误:</p>
<blockquote>
<p><code>sequence expected</code></p>
</blockquote>
<p>示例json文件:</p>
<pre><code>[{
"pk": 22,
"model": "auth.permission",
"fields": {
"codename": "add_logentry",
"name": "Can add log entry",
"content_type": 8
}
}, {
"pk": 23,
"model": "auth.permission",
"fields": {
"codename": "change_logentry",
"name": "Can change log entry",
"content_type": 8
}
}, {
"pk": 24,
"model": "auth.permission",
"fields": {
"codename": "delete_logentry",
"name": "Can delete log entry",
"content_type": 8
}
}, {
"pk": 4,
"model": "auth.permission",
"fields": {
"codename": "add_group",
"name": "Can add group",
"content_type": 2
}
}, {
"pk": 10,
"model": "auth.permission",
"fields": {
"codename": "add_message",
"name": "Can add message",
"content_type": 4
}
}
]
</code></pre>