Query, validate, diff, transform, and analyze JSON — all with Python stdlib.
# Query
python3 skills/json-processor/scripts/json_processor.py query data.json "$.store.book[*].title"
# Validate
python3 skills/json-processor/scripts/json_processor.py validate data.json --schema schema.json
# Diff
python3 skills/json-processor/scripts/json_processor.py diff old.json new.json
# Transform (jq-like)
python3 skills/json-processor/scripts/json_processor.py transform data.json --jq '{names: .[].name}'
# Pretty-print
python3 skills/json-processor/scripts/json_processor.py format data.json --indent 2
# Flatten nested JSON
python3 skills/json-processor/scripts/json_processor.py flatten data.json
# Stats
python3 skills/json-processor/scripts/json_processor.py stats data.json
python3 json_processor.py query data.json "$.store.book[*].title"
python3 json_processor.py query data.json "$.store.bicycle.color"
python3 json_processor.py query data.json "$[0].name"
Supports: $.key, .key.sub, [0], [], mixed like .store.book[].title
python3 json_processor.py validate data.json --schema schema.json
Conforms to JSON Schema draft-07 subset: type, enum, pattern, min/maxLength, min/maximum, required, properties, items, additionalProperties.
python3 json_processor.py diff old.json new.json
Output:
📋 Differences (3):
$.name: "Old App" → "New App"
$.version: added → "2.0.0"
$.features[1]: "logging" → "telemetry"
python3 json_processor.py transform data.json --jq '.name'
python3 json_processor.py transform data.json --jq '{persons: .[].name}'
python3 json_processor.py transform data.json --jq '.[].items[0]'
python3 json_processor.py format data.json
python3 json_processor.py format data.json --indent 4 --sort-keys
python3 json_processor.py format data.json --compact
python3 json_processor.py format data.json --output pretty.json
cat data.json | python3 json_processor.py format -
python3 json_processor.py flatten data.json
# {"user.name": "Alice", "user.age": 30, "tags[0]": "admin"}
python3 json_processor.py stats data.json
# 📊 JSON Statistics
# Total nodes: 142
# Max depth: 5
# Types: dict: 28, list: 6, str: 80, int: 22, bool: 6
# Top keys: name: 15, id: 15, type: 12
共 1 个版本