{"record":{"id":"d5ef625f877e2d91","repo":"run-llama/llama_index","slug":"jsonalyzequeryengine-has-been-moved-to-llama-inde","errorCode":null,"errorMessage":"JSONalyzeQueryEngine has been moved to `llama-index-experimental`.\n`pip install llama-index-experimental`\n`from llama_index.experimental.query_engine import JSONalyzeQueryEngine`\nNote that the JSONalyzeQueryEngine allows for arbitrary file creation, \nand should be used in a secure environment.","messagePattern":"JSONalyzeQueryEngine has been moved to `llama-index-experimental`\\.\n`pip install llama-index-experimental`\n`from llama_index\\.experimental\\.query_engine import JSONalyzeQueryEngine`\nNote that the JSONalyzeQueryEngine allows for arbitrary file creation, \nand should be used in a secure environment\\.","errorType":"exception","errorClass":"DeprecationWarning","httpStatus":null,"severity":"error","filePath":"llama-index-core/llama_index/core/query_engine/jsonalyze/jsonalyze_query_engine.py","lineNumber":24,"sourceCode":"This tool is not recommended to be used in a production setting, and would\nrequire heavy sandboxing or virtual machines.\n\nDEPRECATED: Use `JSONalyzeQueryEngine` from `llama-index-experimental` instead.\n\n\"\"\"\n\nfrom typing import Any\n\n\nclass JSONalyzeQueryEngine:\n    \"\"\"\n    JSONalyze query engine.\n\n    DEPRECATED: Use `JSONalyzeQueryEngine` from `llama-index-experimental` instead.\n    \"\"\"\n\n    def __init__(self, *args: Any, **kwargs: Any) -> None:\n        raise DeprecationWarning(\n            \"JSONalyzeQueryEngine has been moved to `llama-index-experimental`.\\n\"\n            \"`pip install llama-index-experimental`\\n\"\n            \"`from llama_index.experimental.query_engine import JSONalyzeQueryEngine`\\n\"\n            \"Note that the JSONalyzeQueryEngine allows for arbitrary file creation, \\n\"\n            \"and should be used in a secure environment.\"\n        )\n","sourceCodeStart":6,"sourceCodeEnd":31,"githubUrl":"https://github.com/run-llama/llama_index/blob/afd0fef371831f9bda13e5af7167cf4e981278ab/llama-index-core/llama_index/core/query_engine/jsonalyze/jsonalyze_query_engine.py#L6-L31","documentation":"llama-index-core ships JSONalyzeQueryEngine only as a tombstone: constructing it raises DeprecationWarning as an exception, telling you the real implementation moved to the llama-index-experimental package (JSONalyze over pandas). The note about arbitrary file creation is a security warning — the engine materializes temp files, so run it in trusted environments.","triggerScenarios":"Calling JSONalyzeQueryEngine(...) (any arguments) after upgrading llama-index-core past the removal: the __init__ unconditionally raises. Reproduces with even `JSONalyzeQueryEngine(df=df, ...)` — no argument set avoids it.","commonSituations":"Upgrading llama-index-core to a version where the module was gutted, while old code or tutorials still import from llama_index.core.query_engine.jsonalyze. The class remains importable, so the failure moves from import time to construction time.","solutions":["pip install llama-index-experimental and switch the import to `from llama_index.experimental.query_engine import JSONalyzeQueryEngine`.","Update all call sites that import from llama_index.core.query_engine.jsonalyze.* (grep for 'jsonalyze').","Run it only where the working directory/file system is trusted — it writes temporary JSON files.","If you cannot install experimental packages, implement a small pandas-analysis engine yourself with CustomQueryEngine + a pandas output parser."],"exampleFix":"# before\nfrom llama_index.core.query_engine.jsonalyze.jsonalyze_query_engine import (\n    JSONalyzeQueryEngine,\n)\nengine = JSONalyzeQueryEngine(df=df)  # raises DeprecationWarning\n\n# after\n# pip install llama-index-experimental\nfrom llama_index.experimental.query_engine import JSONalyzeQueryEngine\nengine = JSONalyzeQueryEngine(df=df)","handlingStrategy":"fallback","validationCode":"try:\n    from llama_index.experimental.query_engine import JSONalyzeQueryEngine  # noqa\n    HAS_EXPERIMENTAL = True\nexcept ImportError:\n    HAS_EXPERIMENTAL = False\n\nif not HAS_EXPERIMENTAL:\n    raise SystemExit(\"pip install llama-index-experimental to use JSONalyzeQueryEngine\")","typeGuard":null,"tryCatchPattern":"try:\n    engine = JSONalyzeQueryEngine(df=df)\nexcept DeprecationWarning as e:\n    # tombstone stub from llama-index-core — switch to the experimental package\n    from llama_index.experimental.query_engine import JSONalyzeQueryEngine as ExpEngine\n    engine = ExpEngine(df=df)","preventionTips":["Install llama-index-experimental alongside llama-index-core if you use jsonalyze/pandas engines.","Grep for 'core.query_engine.jsonalyze' imports after every llama-index upgrade.","Run the engine only in trusted environments — it creates files on disk."],"tags":["llama-index","deprecation","migration","jsonalyze","query-engine","security"],"backgroundTag":null,"analyzedSha":"afd0fef371831f9bda13e5af7167cf4e981278ab","analyzedAt":"2026-08-15T05:42:58.429Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}