How to access shapekey driver via Python?
All shape keys are stored in bpy.data.shape_keys and can be applied to multiple objects. Each object possesses an attribute pointing to the shape key if it is using any. Thus 

shape_key = bpy.data.objects['yourObject'].data.shape_keys


will give you access to it directly.

bpy.data.shape_keys is a bpy_prop_collection which allows access to its elements by name or index.

So if you know the index or the name of a shape key you will probably want to access it from bpy.data.shape_keys. 

If you don't know which shape key is used by an object you will retrieve it from obj.data.shape_keys.


Expression &amp; Variables:

# Access by index only
driver = bpy.data.shape_keys['Key.002'].animation_data.drivers[index]
driver.driver.expression
driver.driver.variables