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

السؤال

نشر

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

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 كالتالي (بدون 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)
  • 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.

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...