【发布时间】:2020-12-14 16:41:11
【问题描述】:
我有一个 XML 文件,该文件已分解为较小的表。我可以将它们加载到 Navicat,除了一张表。 这是 XML 结构:
<Food>
<Id> 100 </Id>
<Type> Meat </Type>
<Expiry Date>
<Chicken>
2020/12/20
</Chicken>
<Beef>
2020/12/25
</Beef>
</Expiry Date>
</Food>
<Food>
<Id> 200 </Id>
<Type> Vegetables </Type>
<Nutrition> B1 </Nutrition>
</Food>
我已经把它变成了 JSON,在 Python 中使用 xmltodict:
[{
"Id": "100",
"Type": "Meat",
"Expiry Date": {
"Chicken": "2020/12/20",
"Beef": "2020/12/25"
}
},
{
"Id": "200",
"Type": "Vegetables",
"Nutrition": "B1"
}]
但是,当我将此 JSON 文件加载到 Navicat(PostgresSQL 连接)时,SQL 表架构只有 Id、Type 和 Expiry Date。如您所见,一个对象中缺少键,但出现在其他对象中。如何创建一个包含 JSON 文件中所有字段的 SQL 表? (ID、类型、有效期和营养)。
【问题讨论】:
-
在客户端解析 JSON 并向数据库发出适当的
INSERT语句。或者,使用json_array_elements和->>运算符在数据库中执行此操作。
标签: sql json postgresql navicat