diff --git a/beat/web/experiments/api.py b/beat/web/experiments/api.py
index 4ddefc9df04c39f787851d05e67ed14738c21332..8d1afece72507467398e79b8655a5958c4e2c70a 100755
--- a/beat/web/experiments/api.py
+++ b/beat/web/experiments/api.py
@@ -157,7 +157,7 @@ class ListCreateExperimentsView(ListCreateContributionView):
     def post(self, request, author_name):
         data = request.data
 
-        if data.has_key('name'):
+        if 'name' in data:
             if not(isinstance(data['name'], six.string_types)):
                 return BadRequestResponse('Invalid name')
 
@@ -170,7 +170,7 @@ class ListCreateExperimentsView(ListCreateContributionView):
         else:
             name = None
 
-        if data.has_key('short_description'):
+        if 'short_description' in data:
             if not(isinstance(data['short_description'], six.string_types)):
                 return BadRequestResponse('Invalid short_description')
 
@@ -183,7 +183,7 @@ class ListCreateExperimentsView(ListCreateContributionView):
         else:
             short_description = ''
 
-        if data.has_key('description'):
+        if 'description' in data:
             if not(isinstance(data['description'], six.string_types)):
                 raise serializers.ValidationError({'description': 'Invalid description data'})
             description = data['description']
@@ -194,13 +194,13 @@ class ListCreateExperimentsView(ListCreateContributionView):
         else:
             description = None
 
-        if not(data.has_key('toolchain')):
+        if 'toolchain' not in data:
             return BadRequestResponse('Must indicate a toolchain name')
 
         if not(isinstance(data['toolchain'], six.string_types)):
             return BadRequestResponse('Invalid toolchain name')
 
-        if not(data.has_key('declaration')):
+        if 'declaration' not in data:
             return BadRequestResponse('Must indicate a declaration')
 
         if not(isinstance(data['declaration'], dict)) and \
@@ -341,17 +341,17 @@ class RetrieveUpdateDestroyExperimentView(RetrieveUpdateDestroyContributionView)
                 return BadRequestResponse('Experiment is not in pending state')
 
             for key in data.keys():
-                if not(key in allowed_fields):
+                if key not in allowed_fields:
                     return BadRequestResponse('Experiment is not in pending state')
 
         # Available fields (not returned by default):
         #    - html_description
-        if request.GET.has_key('fields'):
+        if 'fields' in request.GET:
             fields_to_return = request.GET['fields'].split(',')
         else:
             fields_to_return = []
 
-        if data.has_key('name'):
+        if 'name' in data:
             if not(isinstance(data['name'], six.string_types)):
                 raise serializers.ValidationError({'name': 'Invalid name'})
             name = data['name'].replace(' ', '_')
@@ -361,14 +361,14 @@ class RetrieveUpdateDestroyExperimentView(RetrieveUpdateDestroyContributionView)
         else:
             name = None
 
-        if data.has_key('short_description'):
+        if 'short_description' in data:
             if not(isinstance(data['short_description'], six.string_types)):
                 raise serializers.ValidationError({'short_description': 'Invalid short_description'})
             short_description = data['short_description']
         else:
             short_description = None
 
-        if data.has_key('description'):
+        if 'description' in data:
             if not(isinstance(data['description'], six.string_types)):
                 raise serializers.ValidationError({'description': 'Invalid description data'})
             description = data['description']
@@ -379,7 +379,7 @@ class RetrieveUpdateDestroyExperimentView(RetrieveUpdateDestroyContributionView)
         else:
             description = None
 
-        if data.has_key('declaration'):
+        if 'declaration' in data:
             if not(isinstance(data['declaration'], dict)) and \
                     not(isinstance(data['declaration'], six.string_types)):
                 raise serializers.ValidationError({'declaration': 'Invalid declaration'})
@@ -394,7 +394,7 @@ class RetrieveUpdateDestroyExperimentView(RetrieveUpdateDestroyContributionView)
                 except:
                     raise serializers.ValidationError({'declaration' :'Invalid declaration data'})
 
-            if declaration.has_key('description'):
+            if 'description' in declaration:
                 if short_description is not None:
                     raise serializers.ValidationError({'short_description': 'A short description is already provided in the experiment declaration'})
 
@@ -409,7 +409,7 @@ class RetrieveUpdateDestroyExperimentView(RetrieveUpdateDestroyContributionView)
             raise serializers.ValidationError({'short_description': 'Short description too long'})
 
 
-        if data.has_key('toolchain'):
+        if 'toolchain' in data:
             if not(isinstance(data['toolchain'], six.string_types)):
                 raise serializers.ValidationError({'toolchain': 'Invalid toolchain name'})