我们如何用字符串api输出创建一个字典,如下所示:



我们如何用字符串api输出创建一个字典,如下所示:

API输出:

{
  "id":"group_cluster"
  ,"Fields":{
    "SIZE":0
    ,"REBALANCE":"AUTO"
    ,"REPLICAS":"1"
    ,"MODEL":"PARTICIPANT"
    ,"MODEL_FACTORY_NAME":"group_cluster"
  }
  ,"Fields":{
  }
  ,"mapping":{
    "group_0":{
      "station08.example.com_98559":"PARTICIPANT"
    }
    ,"group_1":{
      "station19.example.com_98559":"PARTICIPANT"
    }
    ,"group_2":{
      "station31.example.com_98559":"PARTICIPANT"
    }
    ,"group_3":{
      "station44.example.com_98559":"PARTICIPANT"
    }
}

想用上面的字符串编一本字典。

即。

{
    'group_0': 'station08.example.com_98559',
    'group_1': 'station19.example.com_98559',
    'group_2': 'station31.example.com_98559
}

我试着玩json模块,结果得到了:

In: import json
In: d=json.loads(data)
In: d
Out:
{u'id': u'group_cluster',
 u'Fields': {},
 u'mapping': {u'group_0': {u'station08.example.com_98559': u'PARTICIPANT'},
  u'group_1': {u'station19.example.com_98559': u'PARTICIPANT'},
  u'group_2': {u'station31.example.com_98559': u'PARTICIPANT'},
  u'group_3': {u'station44.example.com_98559': u'PARTICIPANT'},
  u'group_4': {u'station73.example.com_98559': u'PARTICIPANT'},
  u'group_5': {u'station88.example.com_98559': u'PARTICIPANT'},
  u'group_6': {u'station74.example.com_98559': u'PARTICIPANT'},
  u'group_7': {u'station77.example.com_98559': u'PARTICIPANT'}},
 u'Fields': {u'SIZE': u'0',
  u'ENABLED': u'true',
  u'STATE_MODE': u'AUTO',
  u'REBALANCE': u'AUTO',
  u'REPLICAS': u'1',
  u'MODEL': u'PARTICIPANT',
  u'MODEL_FACTORY_NAME': u'group_cluster'}}
In : for i,k in d.items():
    for e,f in k.items():
        for j in f.iteritems():
            print j[0],e
   .....:
station31.example.com_98559 group_2
station44.example.com_98559 group_3
station08.example.com_98559 group_0
station19.example.com_98559 group_1
station74.example.com_98559 group_6
station77.example.com_98559 group_7
station73.example.com_98559 group_4
station88.example.com_98559 group_5
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-258-418baa8a7a16> in <module>()
      1 for i,k in d.items():
      2     for e,f in k.items():
----> 3         for j in f.iteritems():
      4             print j[0],e
      5
AttributeError: 'unicode' object has no attribute 'iteritems'

得到了解决方案:

for i,k in d.items():
  if type(k)==dict:
    for e,f in k.items():
      if type(f)==dict:
        for j in f.iteritems():
          print j[0],e

最新更新