4

Python を使用して、このデータから重複した 'person_id' フィールドを削除する効率的な方法はありますか? この場合、最初に出現したものだけを保持してください。

{
  {obj_id: 123,
    location: {
      x: 123,
      y: 323,
  },
  {obj_id: 13,
    location: {
      x: 23,
      y: 333,
  },
 {obj_id: 123,
    location: {
      x: 122,
      y: 133,
  },
}

次のようになる必要があります。

{
  {obj_id: 123,
    location: {
      x: 123,
      y: 323,
  },
  {obj_id: 13,
    location: {
      x: 23,
      y: 333,
  },
}
4

4 に答える 4

10

JSONが有効な構文であり、実際に助けを求めていると仮定すると、Python次のようなことをする必要があります

import json
ds = json.loads(json_data_string) #this contains the json
unique_stuff = { each['obj_id'] : each for each in ds }.values()

最初に出現したものを常に保持したい場合は、次のようにする必要があります

all_ids = [ each['obj_id'] for each in ds ] # get 'ds' from above snippet
unique_stuff = [ ds[ all_ids.index(id) ] for id in set(ids) ]
于 2013-06-12T22:37:56.580 に答える
-4

これは有効な JSON ではありません。有効な JSON (配列) では、jQuery $.each を使用して Obj_id を調べ、重複を見つけて削除できます。

このようなもの:

$.each(myArrayOfObjects, function(i, v)
{
      // check for duplicate and add non-repeatings to a new array
});
于 2013-06-12T22:36:22.157 に答える