Accessing object names with Python - outliner has different names for the same object
Use the object reference.

When adding an object via an operator, the new object is context.object.  The data part, the lamp in this case is context.object.data

import bpy
context = bpy.context 
bpy.ops.object.lamp_add(type='POINT', radius=1, location=(1,1,1))
lamp_obj = context.object
lamp = lamp_obj.data
lamp.use_nodes = True


Ultimately if you are going to be adding hundreds of lamps with code suggest using API methods rather than operators which become slow.  Python performance with Blender operators

Test code below written and tested in 2.8.  See comments for conversion to prior.

import bpy
context = bpy.context
scene = context.scene
nlamps = 10

for i in range(nlamps):
    lamp = bpy.data.lights.new("Spot%d" % i, type='SPOT') # 2.8
    #lamp = bpy.data.lamps.new("Spot%d" % i, type='SPOT') # prior
    lamp_obj = bpy.data.objects.new("Spot%d" % i, lamp)
    lamp_obj.location.x = i
    scene.collection.objects.link(lamp_obj) # 2.8
    #scene.objects.link(lamp_obj) # prior 2.8