Get Shape Key from Action or FCurve in Python?
key_block names can be used for different shape key lists, which means same shape key name but different objects. Every object uses its own action, thus you need to use the action the object references (Object.data.shape_keys.animation_data.action). See:

# Cube

&gt;&gt;&gt; bpy.data.objects['Cube'].data.shape_keys.animation_data.action.fcurves[0].data_path
'key_blocks["Key 1"].value'

&gt;&gt;&gt; bpy.data.objects['Cube'].data.shape_keys.animation_data.action.fcurves[0].id_data
bpy.data.actions['KeyAction']


# Cube.001

&gt;&gt;&gt; bpy.data.objects['Cube.001'].data.shape_keys.animation_data.action.fcurves[0].data_path
'key_blocks["Key 1"].value'

&gt;&gt;&gt; bpy.data.objects['Cube.001'].data.shape_keys.animation_data.action.fcurves[0].id_data
bpy.data.actions['Key.001Action']