我正在尝试“美化打印”查询结果。由于我不知道查询的内容,因此无法手动转换。我的想法是遍历 PgRow 的每个列信息,然后针对每个列获取其值。
以下是目前的代码:
然而,这会导致panic,因为
我该怎么做?有没有一种方法可以在Rust中表示任何SQL类型并将其转换为字符串,或者有没有更好的格式化行的方法?
以下是目前的代码:
fn row_to_json(row: PgRow) -> HashMap<String, String> {
let mut result = HashMap::new();
for col in row.columns() {
let name = col.name();
result.insert(name.to_string(), row.get(name));
}
result
}
然而,这会导致panic,因为
row.get()
不知道如何将任意类型转换为字符串(即使是整数)。我还尝试了serde_json::Value
,但没有成功。我该怎么做?有没有一种方法可以在Rust中表示任何SQL类型并将其转换为字符串,或者有没有更好的格式化行的方法?
values.as_str()
是一个私有方法。 - Ayan Banerjee&str
传递给pool.fetch()
方法,而不是由sqlx::query()
返回的Query
对象。这在此changelog中有解释,并且仅适用于Postgres和MySQL。 - Eduardo macedo