SORU
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ş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Bratayley

    Bratayley

    30 Aralık 2010
  • Sean Murphy

    Sean Murphy

    4 ŞUBAT 2009
  • ShoSho

    ShoSho

    20 Ocak 2010