2016-05-22 12 views
8

Ben şöyle bir json dosyayı almak için REST API kullanıyorum:Bir json pandalar veri karesine nasıl yüklenir?

import urllib2 
import pandas as pd 
import numpy as np 
import requests 

request='myrequest' 
data= requests.get(request) 
json=data.json() 
df=pd.DataFrame(json) 

ve

           items 
0 {u'access': u'all', u'count': 501, u'time': 2014} 
1 {u'access': u'all', u'count': 381, u'time': 2015} 

nasıl uygun içine bu tek bir sütun (yani bir sözlük gibi görünüyor) dönüştürebilir gibi dataframe görünüyor Pandalar sütunlar?

DÜZENLEME

ham json verileri bu

{ 
    "items": [ 
    { 
     "access": "all", 
     "count": 200, 
     "time": 2015 
    }, 
    { 
     "access": "all", 
     "count": 14, 
     "time": 2015 
    }, 
    ] 
} 

teşekkür benziyor! İşte

+1

JSON bir DataFrame'e dönüştürmeden önce bir sözlüğe yükleyin. –

+0

teşekkürler! bunu nasıl yapabilirim? –

+1

Örnek dosyanızı ekleyebilir misiniz? Bir cevap yazacağım. –

cevap

4

pd.read_json(json_str)

Pandas documentation olduğunu.

DÜZENLEME: Ayrıca sadece edebilirsiniz json str listesi için

:

import json 
import pandas as pd 

df = pd.DataFrame.from_records(map(json.loads, json_lst)) 
+0

bana 'TypeError: Expected String veya Unicode ' –

+1

@Noobie Ham verileri paylaşabilir misiniz? – ayhan

+1

'json' bir liste ise, o listenin her bir öğesi için' read_json' olmalıdır. Read_json'un girişi bir "str" ​​olmalıdır. –

1

Eh, bana öyle geliyor ki dicts ve listenin herhangi varyasyonlarını içeren yuvalama için JSON ithalat Pandalar yinelenen elemanları ile tek bir dict koleksiyonu gerektirir iken. Bu nedenle, eşleşmezlerse biraz dönüşüm yapmak zorundasınız.

JSON'unuzun yapısını doğru bir şekilde yorumladığımı varsayarsak (ve o zamandan beri, JSON yapısını değil, sadece son ürünü yazdırıyor olabilirsiniz), sözlüklerin bir listesi gibi görünüyor. Bu durumda, işte çözüm:

data = {k:[v] for k,v in json[0].items()} 
for jso in json[1:]: 
    for k,v in jso.items(): 
     data[k].append(v) 

df = pd.DataFrame(data) 

Düzenleme:

Değerler sağlanmaktadır , benim kod çalışma almak için, sadece önünde aşağıdaki gerekir:

json = json["items"] 

ben Bunun işe yarayacağını düşünün, ancak isteklerin JSON nasıl işlediğine bağlıdır. Çalışmıyorsa, json nesnesinin bir çıktısını verin.

+0

Teşekkürler! Sana ham jsonu verdim –