Update key trong nested dictionary



  • Chào cả nhà,

    Mình có bài toán này, mọi người giúp mình với.

    Gỉa sử mình có file yaml sau:

    options:
      update_code:
        allow_weekend: true
    super_admin: admin1 admin2```
    
    Dùng lib yaml thì sẽ đc nested dictionary, bài toán là.
    
    Mình muốn update 1 key bất kì (đầu vào là 1 key), ví dụ key allow_weekend, gía trị mới là false chẳng hạn
    
    Thì có giải pháp nào ko nhỉ, mình đang làm thế này,
    
    
    def _update_item(self, obj, key, val):
        if key in obj:
            if type(obj[key]) is not dict:
                print obj, val                                                                                                         
                obj[key].update(val)
                print obj, val
    
                return True
    
            return obj[key]
        for k, v in obj.items():
            if isinstance(v,dict):
                item = self._update_item(v, key, val)
                if item is not None:
                    return item```
    

    Như này thì nó update đc gía trị, nhưng dictionary ban đầu ko được update :D

    Mọi người giu'p mình với :D



  • Cho mình hỏi thêm, có phải bạn đang gặp vấn đề về json.dumps, hàm này không thể dumps được cái dictionary của bạn vì có một số type không thể dump được?


Hãy đăng nhập để trả lời
 

Có vẻ như bạn đã mất kết nối tới Cộng đồng Python Việt Nam, vui lòng đợi một lúc để chúng tôi thử kết nối lại.