اذهب إلى المحتوى

السؤال

نشر

أحاول إستخراج البيانات من موقع الكتروني (خرائط جوجل) كالتالي:

from urllib2 import Request, urlopen
import json

path1 = '40,-81.1'
request=Request('http://maps.googleapis.com/maps/api/elevation/json?locations='+path1+'&sensor=false')
response = urlopen(request)
elevations = response.read()

لكن البيانات التي ترجع من هذا الموقع تكون على شكل json، حاولت أن أقوم بقراءتها بهذا الشكل:

pd.read_json(elevations)

لكن هذا لا يحولها الى dataframe، كيف يمكنني تحويل json الى dataframe 

Recommended Posts

  • 0
نشر

يمكنك استخدام الدالة json_normalize() لتسطيح البيانات flatten العائدة من ال api بعد ذلك تحولها الى dataframe بسهوله، الكود التالى يوضح تلك الخطوات:

from urllib2 import Request, urlopen
import json

import pandas as pd    

path1 = '40,-81.1'
request=Request('http://maps.googleapis.com/maps/api/elevation/json?locations='+path1+'&sensor=false')
response = urlopen(request)
elevations = response.read()
data = json.loads(elevations)
df = pd.json_normalize(data['results'])

يمكنك كذلك تحويلها الى قاموس dictionary ثم تحويلها الى dataframe كالتالي:

train = pd.DataFrame.from_dict(data, orient='index')
train.reset_index(level=0, inplace=True)

اذا قمت بطباعة البيانات في الحالتين ستجدها على الشكل والصيغة dataframe.

  • 0
نشر

إكما يمكنك القيام بذلك من خلال json_normalize كالتالي (بدون urllib2):

import requests
from pandas import json_normalize
url = ..
response = requests.get(url)
dictr = response.json()
recs = dictr['result']['records']
df = json_normalize(recs)
print(df)

أو كالتالي (ينصح بالطريقة الأولى):

#json.load من خلال JSON نقوم بقراءة بيانات 
f = 'jsondata.json'
with open(f) as j:
    dict_train = json.load(j.read())
#DataFrame إلى json تحويل مجموعة بيانات
df = pd.DataFrame.from_dict(dict_train, orient='index')
df.reset_index(level=0, inplace=True)

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...