Python-Based Interview Questions with
Answers & Examples
How would you build a REST API client in Python without
frameworks?
Answer: Use the 'requests' library to send HTTP requests. Create reusable wrapper functions
for GET/POST and handle exceptions.
Example:
Example:
import requests
def get_data(url):
try:
resp = [Link](url, timeout=5)
resp.raise_for_status()
return [Link]()
except Exception as e:
return {"error": str(e)}
print(get_data("[Link]
What libraries are commonly used in Python for making
HTTP requests?
Answer: 'requests' for simple HTTP calls, 'httpx' for async support, and 'aiohttp' for async-heavy
apps.
Example:
Example:
import requests
resp = [Link]("[Link] json={"username": "a", "password": "b"})
print(resp.status_code)
How do you parse XML in Python?
Answer: Use [Link] to load and traverse XML data.
Example:
Example:
import [Link] as ET
tree = [Link]('<user><name>Arjun</name></user>')
print([Link]('name').text)
How do you handle inconsistent JSON responses?
Answer: Use try/except around [Link] and validate required keys before use.
Example:
Example:
import json
try:
data = [Link]('{"name": "Test"}')
if "age" not in data:
print("age missing")
except [Link]:
print("Invalid JSON")
How do you add retries and timeouts in API calls?
Answer: Use requests with retry logic from urllib3 Retry or write custom loops.
Example:
Example:
import requests
from [Link] import HTTPAdapter
from [Link] import Retry
session = [Link]()
retry = Retry(total=3, backoff_factor=1)
adapter = HTTPAdapter(max_retries=retry)
[Link]("[Link] adapter)
[Link]("[Link] adapter)
print([Link]("[Link]
How do you authenticate using OAuth2 in Python?
Answer: Use requests-oauthlib or manually pass tokens from auth endpoints.
Example:
Example:
headers = {"Authorization": "Bearer <token>"}
[Link]("[Link] headers=headers)
How do you test API integrations?
Answer: Use pytest, mock API calls with responses or [Link].
Example:
Example:
from [Link] import patch
import requests
@patch("[Link]")
def test_api(mock_get):
mock_get.return_value.json.return_value = {"ok": True}
assert [Link]("x").json() == {"ok": True}
How do generators help in handling large responses?
Answer: They allow streaming items one-by-one without loading entire data in memory.
Example:
Example:
def stream_lines(filename):
for line in open(filename):
yield line
Explain dependency injection with Python modules.
Answer: You inject functions or classes instead of hardcoding dependencies, aiding testability.
Example:
Example:
def process(data_loader):
return data_loader()
Optimize a slow Python script processing logs.
Answer: Use profiling, switch to generators, apply multiprocessing for CPU-heavy tasks.
Example:
Example:
from multiprocessing import Pool
def parse(line):
return [Link]()
with Pool() as p:
results = [Link](parse, open("[Link]"))
Threading vs multiprocessing for I/O heavy tasks?
Answer: Use threading for I/O heavy tasks like API calls. Use multiprocessing for CPU bound
tasks.
How would you send or receive SIP messages using
Python?
Answer: Use libraries like PJSIP or run SIP commands via subprocess and parse output.
Example:
Example:
import subprocess
out = [Link]("sipsak -s sip:user@[Link]")
print(out)
How do you work with TCP sockets in Python?
Answer: Use socket module to send and receive data via TCP.
Example:
Example:
import socket
s = [Link]()
[Link](("[Link]", 80))
[Link](b"GET / HTTP/1.1\n\n")
print([Link](1024))
How would you capture WebRTC logs using Python?
Answer: Collect browser logs, store them, then parse with Python using regex or JSON
processing.
Write a Python script to monitor SIP trunk status.
Answer: Ping SIP endpoints or parse trunk logs periodically.
Example:
Example:
import subprocess, time
while True:
print([Link]("sipsak -s sip:[Link]"))
[Link](10)
How do you explain an API flow to a non-technical
customer?
Answer: Break the flow into simple steps: request, process, response, error handling. Use
diagrams, avoid jargon.
Describe debugging a user issue using logs.
Answer: Reproduce issue, compare logs, observe timestamps and errors, trace API calls.
How do you handle a customer believing the API is
broken?
Answer: Remain calm, check logs, validate both ends, run test calls, show evidence politely.
How to prioritize customer-reported bugs?
Answer: Consider severity, impact, reproducibility, and number of affected users.
How do you build small automation tools for customers?
Answer: Write simple CLI Python scripts using requests and schedule tasks with cron.
Webhook not receiving POST requests. How do you
debug?
Answer: Check logs, verify SSL, print request logs, create a Python script to test POST.
Example:
Example:
import requests
print([Link]("[Link] json={"test":1}).status_code)
Write a Python parser for SIP logs.
Answer: Use regex or split to extract call events.
Example:
Example:
import re
log = 'CALL START ID=123'
print([Link](r'ID=(\d+)', log))
API integration failing intermittently?
Answer: Check network issues, retry logic, logging, token expiry, rate limits.
Prototype workflow using REST + WebRTC events?
Answer: Write small Python scripts for API steps and simulate events via mock data.
Integrate Python backend with CRM API reliably.
Answer: Use retries, persistent sessions, token refresh mechanism, structured logging.
How to solve 500 errors in POST API?
Answer: Check request body, server logs, authentication, reduce payload, isolate failing fields.
Python script sending data and handling errors.
Answer: Use try/except around requests, log failures.
Example:
Example:
import requests
def send(payload):
try:
r = [Link]("[Link] json=payload)
r.raise_for_status()
return [Link]()
except Exception as e:
return {"error": str(e)}
print(send({"msg": "hello"}))