如何在DuckDB中通过JSON字符串自动创建表并生成结构?
解决DuckDB直接用JSON字符串创建表的报错问题
你遇到的错误是因为json()是JSON扩展中的宏函数,仅用于处理单个JSON值,并非能读取JSON数据集并返回表的表函数。要直接用JSON字符串创建表且自动生成结构,正确的做法是使用read_json_auto函数,并通过inline:前缀指定读取的是字符串内容而非文件路径。
正确SQL语句示例
CREATE TABLE todos AS SELECT * FROM read_json_auto('inline:[{"family": "Mark"}, {"family": "Nej"}]');
适配你的OpenAlex数据场景
对于从OpenAlex获取的作品列表这类JSON字符串数据,直接套用上述写法即可:
- 把OpenAlex返回的JSON字符串替换到
inline:后面的部分 - 执行语句后,DuckDB会自动推断JSON中的字段结构,生成对应的表,完全不需要手动定义SQLAlchemy ORM模型
额外说明
如果你的DuckDB版本未默认加载JSON扩展,先执行以下语句加载:
LOAD json;
内容的提问来源于stack exchange,提问作者robertspierre
相关产品推荐
相关产品推荐

