5.14 Data Types in DevOps
Where Python's built-in data types show up in real infrastructure tooling — configuration data, JSON, API responses, AWS/boto3 resources, and log processing.
Real infrastructure tooling constantly maps external data (JSON APIs, config files, log lines) into these exact built-in types — here’s where each one shows up in practice.
Configuration Data
Config values loaded from a file or environment naturally become a dict — structured, labeled settings:
config = {
"host": "localhost",
"port": 8080,
"debug": True,
}
JSON
json.loads() converts a JSON document directly into Python’s native types — objects become dict, arrays become list, and JSON’s true/false/null map to bool/None:
>>> import json
>>> config = json.loads('{"host":"localhost","port":8080,"debug":true,"tags":["prod","web"]}')
>>> type(config), type(config["port"]), type(config["debug"]), type(config["tags"])
(<class 'dict'>, <class 'int'>, <class 'bool'>, <class 'list'>)
API Responses
REST API responses are almost always parsed JSON — meaning nested dicts and lists, accessed the same way regardless of which API you’re calling.
response = {
"status": "success",
"data": {"user_id": 42, "active": True},
}
>>> response["data"]["user_id"]
42
AWS Resources
boto3 responses follow the same dict/list nesting pattern — knowing how to navigate nested dicts is directly transferable to any AWS SDK call.
instance = {
"InstanceId": "i-0abc123",
"State": {"Name": "running"},
"Tags": [{"Key": "Name", "Value": "web01"}],
}
>>> instance["State"]["Name"]
'running'
Log Processing
Raw log lines are str; once parsed, the extracted fields are typically stored in a dict per line for further filtering and aggregation.
Quick Interview Answer
“In real infrastructure code, external data maps directly onto Python’s built-in types: config files and
json.loads()output becomedict(with nestedlists), JSON’strue/false/nullbecomebool/None,boto3AWS responses follow the same dict/list nesting, and raw log lines start asstrbefore being parsed into per-line dicts for filtering and aggregation.”
Common Mistakes
- Assuming a JSON field is always present and indexing directly (
response["data"]["user_id"]) instead of using.get()defensively when the API contract isn’t guaranteed. - Forgetting that a
boto3response nests dicts and lists arbitrarily deep — reaching for a fixed number of[...]lookups instead of walking the structure defensively.
Add More Questions to This Guide
Know a question that should be here? Share it and help the community!
Open Google Form