ازگر میں JSON کو پارس کرنے کے لئے رہنما

تبصرے: 0

JSON کا مطلب جاوا اسکرپٹ آبجیکٹ نوٹیشن ہے۔ یہ نہ صرف ہلکا پھلکا ہے بلکہ انسانوں کے لئے پڑھنے لکھنا بھی آسان ہے۔ اسی طرح ، مشینوں کو پارس اور پیدا کرنا آسان معلوم ہوتا ہے۔ جب کسی بھی ازگر ڈویلپر کے لئے APIs ، کنفیگریشن فائلوں ، یا ذخیرہ شدہ معلومات کے دیگر ذرائع سے ڈیٹا کے ساتھ کام کرتے ہو تو JSON پارسنگ انتہائی ضروری ہے۔ یہ مضمون آپ کو ازگر کے JSON ماڈیول کا استعمال کرتے ہوئے JSON کی تجزیہ کرنے کے لئے بنیادی طریقہ کار کے ذریعے لے جاتا ہے۔

JSON اور اس کے ڈھانچے کو سمجھنا

JSON اعداد و شمار کو کلیدی قدر کے جوڑے کے طور پر نمائندگی کرتا ہے ، جو ایک ازگر لغت کی طرح ہے۔ یہاں JSON آبجیکٹ کی ایک بنیادی مثال ہے:

{
    "name": "Alice",
    "age": 30,
    "is_student": false,
    "courses": ["Math", "Science"]
}

اس JSON آبجیکٹ میں ایک تار ، ایک نمبر ، ایک بولین اور ایک صف شامل ہے۔ اس ڈھانچے کو سمجھنا ازگر میں JSON ڈیٹا کی تجزیہ اور جوڑ توڑ کے لئے بنیادی ہے۔

JSON کے ساتھ ازگر میں کام کرنا

ازگر کا JSON ماڈیول JSON کے تاروں اور فائلوں کی تجزیہ کرنا آسان بنا دیتا ہے۔ اس ماڈیول میں JSON.Loads () جیسے اسٹرنگ سے JSON پڑھنے کے لئے ، اور JSON.Load () جیسے فائل سے JSON پڑھنے کے طریقے شامل ہیں۔ اس کے برعکس ، json.dums () اور json.dump () بالترتیب JSON کو تار اور فائل میں لکھنے کے لئے استعمال ہوتے ہیں۔

JSON ڈیٹا پڑھنا

JSON ڈیٹا کو پڑھنے کے بہت سے طریقے ہیں ، جن کو ہم اگلے دیکھیں گے۔

ایک تار سے JSON پڑھنا

تار سے JSON ڈیٹا کو پڑھنے کے لئے ، json.loads () طریقہ استعمال کریں:

import json

json_string = '{"name": "Alice", "age": 30, "is_student": false, "courses": ["Math", "Science"]}'
data = json.loads(json_string)

print(data)

آؤٹ پٹ:

1.png

فائل سے json پڑھنا

کسی فائل سے JSON ڈیٹا کو پڑھنے کے لئے ، json.load () طریقہ استعمال کریں:

import json

with open('data.json', 'r') as file:
    data = json.load(file)

print(data)

آؤٹ پٹ:

2.png

JSON ڈیٹا لکھنا

JSON ڈیٹا لکھنے کے کچھ مختلف طریقے یہ ہیں:

JSON کو تار میں لکھنا

JSON ڈیٹا کو تار میں لکھنے کے لئے ، json.dums () طریقہ استعمال کریں:

import json

data = {
    "name": "Alice",
    "age": 30,
    "is_student": False,
    "courses": ["Math", "Science"]
}

json_string = json.dumps(data)
print(json_string)

آؤٹ پٹ:

3.png

JSON کو فائل میں لکھنا

کسی فائل میں JSON ڈیٹا لکھنے کے لئے ، json.dump () طریقہ استعمال کریں:

import json

data = {
    "name": "Alice",
    "age": 30,
    "is_student": False,
    "courses": ["Math", "Science"]
}

with open('data.json', 'w') as file:
    json.dump(data, file)

نیسٹڈ JSON کو ہینڈلنگ

زیادہ پیچیدہ ڈیٹا ڈھانچے کے ساتھ کام کرتے وقت گھوںسلا JSON اشیاء عام ہیں۔ ازگر آسانی سے ان گھریلو ڈھانچے کو سنبھال سکتا ہے۔

import json

nested_json_string = '''
{
    "name": "Alice",
    "age": 30,
    "is_student": false,
    "courses": ["Math", "Science"],
    "address": {
        "street": "123 Main St",
        "city": "Wonderland"
    }
}
'''

data = json.loads(nested_json_string)
print(data['address']['city'])

آؤٹ پٹ:

4.png

کسٹم JSON انکوڈر

کبھی کبھی ، آپ کو کسٹم ازگر اشیاء کو JSON میں تبدیل کرنے کی ضرورت ہوتی ہے۔ اس کے لئے ایک کسٹم انکوڈر کی ضرورت ہے۔

import json

class Student:
    def __init__(self, name, age, is_student):
        self.name = name
        self.age = age
        self.is_student = is_student

class StudentEncoder(json.JSONEncoder):
    def default(self, obj):
        if isinstance(obj, Student):
            return obj.__dict__
        return super().default(obj)

student = Student("Alice", 30, False)
json_string = json.dumps(student, cls=StudentEncoder)
print(json_string)

آؤٹ پٹ:

5.png

کسٹم JSON Dedoder

اسی طرح ، JSON ڈیٹا کو کسٹم ازگر اشیاء میں ڈی کوڈ کرنے کے ل you ، آپ کو کسٹم ڈیکوڈر کی ضرورت ہے۔

import json

class Student:
    def __init__(self, name, age, is_student):
        self.name = name
        self.age = age
        self.is_student = is_student

def student_decoder(dct):
    return Student(dct['name'], dct['age'], dct['is_student'])

json_string = '{"name": "Alice", "age": 30, "is_student": false}'
student = json.loads(json_string, object_hook=student_decoder)
print(student.name)

آؤٹ پٹ:

6.png

عام مسائل سے نمٹنا

JSON ڈیٹا کے ساتھ کام کرنے سے کئی عام غلطیاں ہوسکتی ہیں ، خاص طور پر جب JSON ڈیٹا کو تجزیہ ، پیدا کرنا ، یا اس تک رسائی حاصل کرنا۔ یہاں کچھ عام ہیں:

غلط JSON فارمیٹ

JSON کو پارس کرتے وقت ایک عام غلطی JSON کے غلط فارمیٹ کا سامنا کر رہی ہے۔ JSON کے لئے چابیاں اور تار کی اقدار کے ارد گرد ڈبل قیمت درج کرنے کی ضرورت ہے ، اور بریکٹ اور منحنی خطوط وحدانی کے مناسب گھوںسلا۔

import json

invalid_json_string = "{'name': 'Alice', 'age': 30, 'is_student': False}"
try:
    data = json.loads(invalid_json_string)
except json.JSONDecodeError as e:
    print(f"Invalid JSON format: {e}")

آؤٹ پٹ:

7.png

گمشدہ چابیاں سنبھالنے

JSON ڈیٹا کو پارس کرتے وقت ، آپ کو لاپتہ چابیاں کا سامنا کرنا پڑ سکتا ہے۔ اگر کوئی کلید غائب ہے تو پہلے سے طے شدہ قیمت فراہم کرنے کے لئے GET طریقہ استعمال کریں۔

import json

json_string = '{"name": "Alice", "age": 30}'
data = json.loads(json_string)

is_student = data.get('is_student', False)
print(is_student)import json

json_string = '{"name": "Alice", "age": 30}'
data = json.loads(json_string)

is_student = data.get('is_student', False)
print(is_student)

ڈیبگنگ JSON پارسنگ ایشوز

بریک پوائنٹس سیٹ کرنے اور اپنے JSON پارسنگ کوڈ کو ڈیبگ کرنے کے لئے PDB ماڈیول کا استعمال کریں۔

import json
import pdb

json_string = '{"name": "Alice", "age": 30, "is_student": false}'
pdb.set_trace()
data = json.loads(json_string)
print(data)

ویب سکریپنگ میں JSON ہینڈلنگ کی عملی مثال

ویب سکریپنگ میں اکثر ویب APIs سے ڈیٹا نکالنا شامل ہوتا ہے جو JSON جوابات واپس کرتے ہیں۔ درخواستوں کی لائبریری اور https://httpbin.org/any کچھنگ پوائنٹ کا استعمال کرتے ہوئے یہاں ایک کمپیکٹ مثال ہے۔

پہلے ، یقینی بنائیں کہ آپ کے پاس لائبریری کی درخواستیں انسٹال ہیں:

pip install requests

یہ کوڈ JSON ڈیٹا کو سنبھالنے کے لئے HTTP درخواستوں اور JSON کے لئے درخواستوں کو درآمد کرتا ہے۔ یہ درخواستوں کا استعمال کرتے ہوئے ٹارگٹ یو آر ایل کو گیٹ کی درخواست بھیجتا ہے۔ ہم خاص ڈیٹا جیسے ہیڈر ، صارف ایجنٹ ، اصل اور یو آر ایل کو کھینچتے اور پرنٹ کرتے ہیں۔

کوڈ میں مضبوط غلطی سے نمٹنے پر مشتمل ہے۔ جب JSON ڈیکوڈنگ کی غلطی واقع ہوتی ہے تو یہ json.jsondecode ایرر کو اپنی گرفت میں لے لیتا ہے ، اور جب کوئی مخصوص کلید غائب ہوتی ہے تو اس کے نتیجے میں پروگرام کو 'NO ڈیٹا' کے حادثے سے محفوظ بنا دیا جاتا ہے۔ اس طرح کے کوڈ کی مضبوطی اس وجہ سے اسے حقیقی ویب سکریپنگ ٹاسک کو مکمل طور پر سنبھالنے کے قابل بناتی ہے۔

import json

url = 'https://httpbin.org/anything'

response = requests.get(url)

try:
    data = response.json()

    # JSON ردعمل سے مخصوص ڈیٹا نکالنا
    headers = data['headers']
    user_agent = headers.get('User-Agent', 'N/A')
    origin = data.get('origin', 'N/A')
    url = data.get('url', 'N/A')

    print(f"User Agent: {user_agent}")
    print(f"Origin: {origin}")
    print(f"URL: {url}")

except json.JSONDecodeError:
    print("Error decoding JSON response")

except KeyError as e:
    print(f"Key error: {e} not found in the JSON response")

8.png

ہر ازگر کوڈر کو JSON کی تجزیہ کرنے کا طریقہ جاننا چاہئے۔ JSON ماڈیول اور اس دستی کے ذریعہ اس کو نمایاں کرنے کا بہترین طریقہ کے ساتھ ، آپ JSON ڈیٹا کو کافی تیزی سے پڑھنے ، لکھنے اور ڈیبگ کرسکیں گے۔ اس سے یہ ظاہر ہوتا ہے کہ آپ باقاعدگی سے اپنے کوڈز کی جانچ کریں گے ، اور بہتر JSON ہینڈلنگ کی مہارت کے ل tion ازگر میں دستیاب صحیح ٹولز اور بیشتر موجودہ خصوصیات کا استعمال کریں گے۔

ویب سکریپنگ کو انجام دیتے وقت ، کسی کو JSON کو اہم سمجھا جاتا ہے ، اس حقیقت پر غور کرتے ہوئے کہ ویب APIs سے حاصل کردہ ڈیٹا عام طور پر JSON کی شکل میں ظاہر ہوتا ہے ، اس کے علاوہ آپ مختلف ویب ذرائع سے معلومات کو موثر انداز میں نکال سکتے ہیں ، اگر آپ JSON ڈیٹا کو پارس اور جوڑ توڑ کرسکتے ہیں۔ اچھے طریقے سے

تبصرے:

0 تبصرے