I think it also depends on the location - in London at a broad brush most places take Amex as I suspect their are more people with Amex e.g. tourists - except smaller outlets - although most of my local shops do take it even the local corner shop in my village and the local chippy.
With Diners Club - I doubt many people will take it all outside of the largest shops/hotels so i would not rely on it at all.