'Create a list of requested networks from the networks attribute.'

def _get_requested_networks(self, requested_networks, supports_device_tagging=False):

    if isinstance(requested_networks, six.string_types):
        return objects.NetworkRequestList(objects=[objects.NetworkRequest(network_id=requested_networks)])
    networks = []
    network_uuids = []
    for network in requested_networks:
        request = objects.NetworkRequest()
        try:
            request.address = network.get('fixed_ip', None)
            request.port_id = network.get('port', None)
            request.tag = network.get('tag', None)
            if (request.tag and (not supports_device_tagging)):
                msg = _('Network    interface    tags    are    not    yet    supported.')
                raise exc.HTTPBadRequest(explanation=msg)
            if request.port_id:
                request.network_id = None
                if (not utils.is_neutron()):
                    msg = _('Unknown    argument:    port')
                    raise exc.HTTPBadRequest(explanation=msg)
                if (request.address is not None):
                    msg = (_("Specified    Fixed    IP    '%(addr)s'    cannot    be    used    with    port    '%(port)s':    the    two    cannot    be    specified    together.") % {'addr': request.address, 'port': request.port_id})
                    raise exc.HTTPBadRequest(explanation=msg)
            else:
                request.network_id = network['uuid']
                self._validate_network_id(request.network_id, network_uuids)
                network_uuids.append(request.network_id)
            networks.append(request)
        except KeyError as key:
            expl = (_('Bad    network    format:    missing    %s') % key)
            raise exc.HTTPBadRequest(explanation=expl)
        except TypeError:
            expl = _('Bad    networks    format')
            raise exc.HTTPBadRequest(explanation=expl)
    return objects.NetworkRequestList(objects=networks)
