9 Aralık 2009, ÇARŞAMBA
python kullanarak csv, json dönüştürmek
Bir CSV gizli dosya istediğim JSON dosyası var. Nasıl Python ile bunu yapabilir miyim?
Kontrol edin 0 oy
Denedim:
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)
f.close()
Ancak, işe yaramadı. Django kullanıyorum ve aldığım hata:
file' object has no attribute 'writerow'
O zaman ben şu çalıştı:
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()
Ben hata alıyorum:
sequence expected
[
{
"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
}
},
]
CEVAP
9 Aralık 2009, ÇARŞAMBA
Bu soru zaten veya değil çözüldü emin değilim, ama bana başvuru için yaptıklarımın yapıştır bakalım.
İlk olarak, JSON, normalde doğrudan CSV dönüştürülemez bu kadar iç içe nesneleri vardır. Böyle bir şey için bunu değiştirmek gerekir:
[{
"pk": 22, "model": "auth.permission", "codename": "add_logentry", "name": "Can add log entry", "content_type": 8
},
......]
Burada CSV oluşturmak için benim kod:
import csv
import json
x="""[
{ "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 }
}
]"""
x = json.loads(x)
f = csv.writer(open("test.csv", "wb "))
# Write CSV Header, If you dont need that, remove this line
f.writerow(["pk", "model", "codename", "name", "content_type"])
for x in x:
f.writerow([x["pk"],
x["model"],
x["fields"]["codename"],
x["fields"]["name"],
x["fields"]["content_type"]])
Çıktı olarak alacaksınız
pk,model,codename,name,content_type
22,auth.permission,add_logentry,Can add log entry,8
23,auth.permission,change_logentry,Can change log entry,8
24,auth.permission,delete_logentry,Can delete log entry,8
Bunu PaylaÅŸ:

python kullanarak csv, json dönüştürme...
JSON yanıt Django kullanarak oluşturma...
Post Python İstekleri kullanarak JSON...
Python kullanarak JSON dönüştürme XML?...
Nasıl Python nesnesine JSON verileri d...