Adding camera to scene
It looks to me like you've got camera objects confused with the camera data. In the code above, you delete all camera objects in the scene, but the data for those cameras is left over. When you later reference the camera by index, you're referencing unlinked, left over camera data from those deleted objects.

You don't necessarily need to clear the left over camera data - you just need to make sure you're pointing to the correct camera data later on (using pointers, for example, rather than indexing).

In the following code, I create the camera object and data directly from the low-level API, which allows me to store pointers to those objects, and their respective data, and change the properties directly:

scn = bpy.context.scene

# create the first camera
cam1 = bpy.data.cameras.new("Camera 1")
cam1.lens = 18

# create the first camera object
cam_obj1 = bpy.data.objects.new("Camera 1", cam1)
cam_obj1.location = (9.69, -10.85, 12.388)
cam_obj1.rotation_euler = (0.6799, 0, 0.8254)
scn.collection.objects.link(cam_obj1)

# create the second camera
cam2 = bpy.data.cameras.new("Camera 2")
cam2.lens = 18

# create the second camera object
cam_obj2 = bpy.data.objects.new("Camera 2", cam2)
cam_obj2.location = (9.69, 10.85, 12.388)
cam_obj2.rotation_euler = (radians(40.6), radians(-5.5), radians(140))
scn.collection.objects.link(cam_obj2)


Also note that this code was written for Blender 2.80. If you're using 2.79 or previous, replace scn.collection.objects.link function calls with scn.objects.link.