Skip to content

read_ndjson PanicException with null input #22750

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
2 tasks done
cmdlineluser opened this issue May 14, 2025 · 1 comment
Open
2 tasks done

read_ndjson PanicException with null input #22750

cmdlineluser opened this issue May 14, 2025 · 1 comment
Labels
A-io-json Area: reading/writing JSON files bug Something isn't working P-low Priority: low python Related to Python Polars

Comments

@cmdlineluser
Copy link
Contributor

Checks

  • I have checked that this issue has not already been reported.
  • I have confirmed this bug exists on the latest version of Polars.

Reproducible example

import polars as pl

pl.read_ndjson(b"null")

Log output

thread '<unnamed>' panicked at crates/polars-arrow/src/array/struct_/mod.rs:258:37:
called `Result::unwrap()` on an `Err` value: ComputeError(ErrString("Struct array must be created with a DataType whose physical type is Struct"))

Issue description

read_json raises a ComputeError.

pl.read_json(b"null")
# ComputeError: can only deserialize json objects

Expected behavior

No panic.

Installed versions

--------Version info---------
Polars:              1.29.0
Index type:          UInt32
Platform:            macOS-13.6.1-arm64-arm-64bit-Mach-O
Python:              3.13.0 (main, Oct  7 2024, 05:02:14) [Clang 15.0.0 (clang-1500.1.0.2.5)]
LTS CPU:             False

----Optional dependencies----
adbc_driver_manager  <not installed>
altair               <not installed>
boto3                <not installed>
cloudpickle          <not installed>
connectorx           <not installed>
deltalake            <not installed>
fastexcel            0.12.0
fsspec               <not installed>
gevent               <not installed>
google.auth          <not installed>
great_tables         0.14.0
matplotlib           <not installed>
nest_asyncio         <not installed>
numpy                2.1.3
openpyxl             3.1.5
pandas               2.2.3
pyarrow              18.0.0
pydantic             <not installed>
pyiceberg            <not installed>
sqlalchemy           <not installed>
torch                <not installed>
xlsx2csv             <not installed>
xlsxwriter           3.2.0
@cmdlineluser cmdlineluser added bug Something isn't working python Related to Python Polars needs triage Awaiting prioritization by a maintainer labels May 14, 2025
@deanm0000 deanm0000 added P-low Priority: low A-io-json Area: reading/writing JSON files and removed needs triage Awaiting prioritization by a maintainer labels May 14, 2025
@deanm0000
Copy link
Collaborator

orjson returns None from orjson.loads(b"null") so should we return a (0,0) df instead of raising? I don't have a strong opinion, raising makes sense too since a 0,0 df is arguably not the same as None.

Semi-related, should pl.DataFrame().item() return None instead of raising?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-io-json Area: reading/writing JSON files bug Something isn't working P-low Priority: low python Related to Python Polars
Projects
None yet
Development

No branches or pull requests

2 participants