Em Polars / pandas / PyArrow, posso instanciar um objeto de um dict, por exemplo
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 │
└─────┴─────┘
Existe uma maneira de fazer isso no DuckDB, sem passar pelo pandas / pyarrow / etc.?
duckdb
apresenta uma funçãoduckdb.read_json
que deve fazer isso simplesmente transmitindo odict
como uma string json, mas nenhuma combinação de seus vários parâmetros fará com que ele leia issodict
da mesma formapolars
, infelizmente. Você pode reorganizar odict
para corresponder à estrutura esperada para um formato json "não estruturado" na documentação deles com bastante facilidade e, em seguida, usar aduckdb.read_json
função para carregá-lo da mesma forma quepolars
, que eu acho que é o mais próximo que você pode chegar da biblioteca como ela está atualmente.Aqui está uma demonstração que mostra a
polars
interpretação que esperávamos, aduckdb
interpretação ingênua que provavelmente não esperávamos e a transformação necessária para carregá-la comopolars
fizemos:O que me dá a seguinte saída:
Observação: aqui está a referência da API Python (role para baixo até "read_csv(..." para obter as informações relevantes), que infelizmente não fornece nenhuma ajuda para usar a função.
Entre em contato se tiver alguma dúvida.