0

これは私が持っているデータ構造です

{"A": [
         { 'key1 a' : 'value1',
           'key2 a' : 'A'
           'key3 a' : 'xyz'
         },

         { 'key1 a' : '',
           'key2 a' : 'B'
           'key3 a' : '' 
         },

         { 'key1 a' : 'value3',  
           'key2 a' : 'value4'
           'key3 a' : 'xyz' 
         }
      ],
 "B": [
         { 'key1 b' : 'value1',
           'key2 b' : 'A'
           'key3 b' : 'xyz'
         },

         { 'key1 b' : '',
           'key2 b' : 'C'
           'key3 b' : '' 
         },

         { 'key1 b' : 'value3',  
           'key2 b' : 'value4'
           'key3 b' : 'xyz' 
         }
      ]
}

ここで、
key2以外のすべてのフィールドが空である辞書の値を連結したいと思います。これが当てはまる場合、key2の値は前の辞書key2と連結され、それ自体を削除する必要があります。
期待される出力は

{"A": [
         { 'key1 a' : 'value1',
           'key2 a' : 'A B'
           'key3 a' : 'xyz'
         },

         { 'key1 a' : 'value3',  
           'key2 a' : 'value4'
           'key3 a' : 'xyz' 
         }
       ],
 "B": [
         { 'key1 b' : 'value1',
           'key2 b' : 'A C'
           'key3 b' : 'xyz'
         },


         { 'key1 b' : 'value3',  
           'key2 b' : 'value4'
           'key3 b' : 'xyz' 
         }
       ]
}

私がこれまでにやったことは

for k,v in final_dict.iteritems():
     i=0
     j=len(v)
     while i < j:
          if((not(v[i]["key1 a"])) and (not(v[i]["key3 a"]))):
                 v[i-1]["key2 a"] = v[i-1]["key2 a"] + v[i]["key2 a"] 
                 v.pop(i)
                 del v[i]
                 j=j-1
          else:
                 i=i+1
4

1 に答える 1

0

これがあなたが探しているものであることを願っています:

dict2 = {}
listElem = []
for key,value in dict1.iteritems():
    for listelem_dict in value:
        for sub_k, sub_v in listelem_dict.iteritems():
            if sub_k.startswith(('key1','key3')) and sub_v == '':
                continue
            else:
                listElem.append(listelem_dict)
                break
        break
    dict2[key] = listElem
print dict2

dict1 は、以下に示すデータ構造です。指定されたデータ構造では、いくつかのコンマが欠落していました。コンマの欠落はタイプミスであると仮定します。

dict1 = {"A": [
                     { 'key1 a' : 'value1',
                       'key2 a' : 'A',
                       'key3 a' : 'xyz'
                     },

                     { 'key1 a' : '',
                       'key2 a' : 'B',
                       'key3 a' : '' 
                     },

                     { 'key1 a' : 'value3',  
                       'key2 a' : 'value4',
                       'key3 a' : 'xyz' 
                     }
              ],
         "B": [
                     { 'key1 b' : 'value1',
                       'key2 b' : 'A',
                       'key3 b' : 'xyz'
                     },

                     { 'key1 b' : '',
                       'key2 b' : 'C',
                       'key3 b' : '' 
                     },

                     { 'key1 b' : 'value3',  
                       'key2 b' : 'value4',
                       'key3 b' : 'xyz' 
                     }
              ]
        }
于 2013-03-04T08:39:31.793 に答える