获取内部嵌套字典

问题描述

我试图从嵌套字典中获取任意值,但出现错误。 我的方法适用于这样的一个级别 dict

    table = [
        {
            "A": 157,"B": 221,"C": 330,"D": 380
        },{
            "A": 510,"B": 547,"C": 660,"D": 780
        },{
            "A": 791,"B": 1111,"C": 1200,"D": 3000
        },]

    from operator import itemgetter
    val = 525
    for dv in table:
        column_B = max(val,dv['B'])
        if val <= dv['B']:
            column_A = (dv['A'])
            column_C = dv['C']
            pct = dv['D']
            break

但是如果我嵌套字典,就会出错。

    table = [
        "inner":{
        
            {   "A": 157,"D": 380
            },{
                "A": 510,"D": 780
            },{
                "A": 791,"D": 3000
            },}

    ]

上面嵌套的字典出现错误。我尝试切片,甚至尝试减少功能,但无法让它发挥作用。我在这里做错了什么?

解决方法

mut self 表示一个列表。 const N: usize = 4; fn main() { let bebalken = [[false; N]; N]; let stuetzen = [[true; N]; N]; let mut f = Feld { abst: [[0; N]; N],bebalken: &bebalken,stuetzen: &stuetzen,balken: [[0; N]; N],}; f.balken_einfugen(0,1,4,1); f.balken_einfugen(1,1); } struct Feld<'a> { abst: [[u8; N]; N],bebalken: &'a [[bool; N]; N],stuetzen: &'a [[bool; N]; N],balken: [[u8; N]; N],} impl Feld<'_> { // `mut self` changed to `&mut self` here pub fn balken_einfugen<'a>(&mut self,x: usize,y: usize,dir: u8,r: u8,connBar: u8) { let imax: usize = N; if dir == 1 { for i in 0..imax { self.balken[x + i][y] = connBar; } }; } } 表示字典。看起来您已经将两者部分混淆了。为了使 [] 有意义,{} 应该是字典,而 table 应该是列表。

table