我正在尝试在 rust 中编写一个函数,我可以从 python 调用该函数,该函数接受一个字典列表(想想 pandas 类似数据框的数据)并从 rust 访问这些键和值。我怎样才能做到这一点?我正在使用pyo3
. 我是否需要定义一个与 python dict 输入的键、值对匹配的结构?
作为一个示例函数,我试图传入一个字典列表并将与键对应的值相加key
为一个总数。我的 python 字典列表中的每个字典都有key
对应于 int 的键。
use pyo3::prelude::*;
use pyo3::wrap_pyfunction;
use pyo3::types::PyDict;
#[pyfunction]
fn sum_list_dicts(a: Vec<PyDict>, key: String) -> PyResult<i32> {
let mut tot = 0_i32;
for d in a.iter() {
tot += d[key];
}
Ok(tot)
}
#[pymodule]
fn rustpy(_py: Python, m: &PyModule) -> PyResult<()> {
m.add_function(wrap_pyfunction!(sum_list_dicts, m)?)?;
Ok(())
}