{"library":"python-json-config","title":"python-json-config","description":"This library (version 1.2.3) provides a convenient way to load JSON configuration files, allowing access to values using dot notation (e.g., `config.server.port`). It also includes features for validating config field types and values, and transforming fields. The library's last update was in November 2019, indicating a maintenance-only or inactive release cadence.","language":"python","status":"maintenance","last_verified":"Sat May 16","install":{"commands":["pip install python-json-config"],"cli":null},"imports":["from python_json_config import ConfigBuilder"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import os\nimport tempfile\n\n# Create a dummy config.json for the example\nconfig_content = '''\n{\n    \"server\": {\n        \"host\": \"localhost\",\n        \"port\": 8080\n    },\n    \"database\": {\n        \"name\": \"mydb\",\n        \"user\": \"admin\"\n    },\n    \"jwt_secret\": \"${JWT_SECRET:-default_secret_key}\"\n}\n'''\n\nwith tempfile.TemporaryDirectory() as tmpdir:\n    config_path = os.path.join(tmpdir, 'config.json')\n    with open(config_path, 'w') as f:\n        f.write(config_content)\n\n    # Set an environment variable to demonstrate its use\n    os.environ['JWT_SECRET'] = 'my_super_secret_jwt_key'\n\n    from python_json_config import ConfigBuilder\n\n    # Create config parser\n    builder = ConfigBuilder()\n\n    # Parse config from the temporary file\n    config = builder.parse_config(config_path)\n\n    # Access elements using dot notation\n    host = config.server.host\n    port = config.server.port\n    db_name = config.database.name\n    jwt_secret = config.jwt_secret # This will pick up from os.environ\n\n    print(f\"Server Host: {host}\")\n    print(f\"Server Port: {port}\")\n    print(f\"Database Name: {db_name}\")\n    print(f\"JWT Secret: {jwt_secret}\")\n\n    # Validate field types\n    builder.validate_field_type('server.port', int)\n    builder.validate_field_type('database.user', str)\n    print(\"Configuration fields validated successfully.\")\n\n    # Clean up environment variable\n    del os.environ['JWT_SECRET']\n","lang":"python","description":"This quickstart demonstrates how to initialize `ConfigBuilder`, parse a JSON configuration file, and access nested values using convenient dot notation. It also includes an example of validating field types and how environment variables can be used for configuration values.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-16","installed_version":"1.2.3","pypi_latest":"1.2.3","is_stale":false,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":2.5,"avg_import_s":0.26,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"python-json-config","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.21,"mem_mb":6.2,"disk_size":"22.9M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"python-json-config","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2.7,"import_time_s":0.16,"mem_mb":6.2,"disk_size":"23M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"python-json-config","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.33,"mem_mb":6.4,"disk_size":"25.2M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"python-json-config","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2.4,"import_time_s":0.28,"mem_mb":6.4,"disk_size":"26M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"python-json-config","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.26,"mem_mb":6.3,"disk_size":"17.0M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"python-json-config","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2.1,"import_time_s":0.26,"mem_mb":6.3,"disk_size":"17M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"python-json-config","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.27,"mem_mb":6.6,"disk_size":"16.3M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"python-json-config","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2,"import_time_s":0.25,"mem_mb":6.6,"disk_size":"17M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"python-json-config","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.25,"mem_mb":8.1,"disk_size":"22.4M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"python-json-config","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":3.1,"import_time_s":0.28,"mem_mb":8.1,"disk_size":"23M"}]}}