在 Polars / pandas / PyArrow 中,我可以从字典中实例化一个对象,例如
In [12]: pl.DataFrame({'a': [1,2,3], 'b': [4,5,6]})
Out[12]:
shape: (3, 2)
┌─────┬─────┐
│ a ┆ b │
│ --- ┆ --- │
│ i64 ┆ i64 │
╞═════╪═════╡
│ 1 ┆ 4 │
│ 2 ┆ 5 │
│ 3 ┆ 6 │
└─────┴─────┘
有没有办法在 DuckDB 中做到这一点,而无需通过 pandas/pyarrow/等?
duckdb
有一个函数duckdb.read_json
,它应该通过简单地将 流式传输为 json 字符串来实现这一点,但不幸的是,它的各种参数组合都无法以相同的方式dict
读取。您可以非常轻松地重新排列 以匹配其文档中“非结构化”json 格式所期望的结构,然后使用函数以与 相同的方式加载它,我认为这是目前使用该库可以获得的最接近的结果。dict
polars
dict
duckdb.read_json
polars
下面是一个演示,展示了
polars
我们期望的解释、我们可能没有想到的简单duckdb
解释以及像那样加载它所需的转换polars
:这给出了以下输出:
需要注意的是:这是python api 参考(向下滚动到“read_csv(...”获取相关信息),但不幸的是,它对使用该函数根本没有提供任何帮助。
如果您有任何疑问,请告诉我。