python-django-restframwork deserializer

时间:2018-01-25 15:49:59

标签: python json django django-rest-framework

我有一个像这种形式的列表。

[{'XPos': {'$': 128.604314661},
  'YPos': {'$': 35.8662354972},
  'clCd': {'$': 1},
  'drTotCnt': {'$': 545},
  'estbDd': {'$': 19100907}
},
 {'XPos': {'$': 128.096026987},
  'YPos': {'$': 35.1753899647},
  'clCd': {'$': 1},
  'drTotCnt': {'$': 326},
},
 {'XPos': {'$': 127.050741243},
  'YPos': {'$': 37.5937747637},
  'clCd': {'$': 1},
  'drTotCnt': {'$': 412},
  'estbDd': {'$': 19711005}
},
 {'XPos': {'$': 128.582521394},
  'YPos': {'$': 35.8701796577},
  'clCd': {'$': 1},
  'drTotCnt': {'$': 427}
},
 {'XPos': {'$': 126.884639554},
  'YPos': {'$': 37.4911811753},
  'clCd': {'$': 1},
  'drTotCnt': {'$': 498},
  'estbDd': {'$': 19830831}
},
 {'XPos': {'$': 126.824997324},
  'YPos': {'$': 37.3188581763},
  'clCd': {'$': 1},
  'drTotCnt': {'$': 281},
  'estbDd': {'$': 19860101},
 }]

并使用django-rest-framework反序列化器,我想将该数据插入到我的数据库中。

但我有一些问题。

  1. 我只需要'XPos','YPos','estbDd'值。
  2. 在将xml转换为json时,已创建了更多嵌套结构。 (看'$')
  3. 某些数据没有'estbDd'字段值。
  4. 如何过滤数据并输入数据库?

    http://www.django-rest-framework.org/api-guide/serializers/

    我引用了该网站。

1 个答案:

答案 0 :(得分:1)

在您的情况下,您可以创建一个新词典并将其保存到数据库中:

# assuming your list is calles 'my_list'
for item in my_list:
    if hasattr(item, 'estbDd'):
        my_model = MyModel()
        my_model.XPos = item['XPos']['$']
        my_model.YPos = item['YPos']['$']
        my_model.estbDb = item['estbDb']['$']
        my_model.save()

这能解决你的问题吗?