Вот мой код.
def generateNewDevices(numofdevices):
global simulated_devices
for x in range(numofdevices):
new_device = reference_device.copy()
new_device["accel"]["accx"] = random.randint(-32768, 32767)
new_device["accel"]["accy"] = random.randint(-32768, 32767)
new_device["accel"]["accz"] = random.randint(-32768, 32767)
new_device["location"]["gpsla"] = random.uniform(MINLAT, MAXLAT)
new_device["location"]["gpslo"] = random.uniform(MINLON, MAXLON)
new_device["temp"] = random.randint(-127, 127)
new_device["status"] = random.randint(0, 1)
str1 = new_device["deviceName"]
str1 = str1[:-3]
str2 = str(x).zfill(3)
str1 += str2
new_device["deviceName"] = str1
node_red_send(URL, new_device)
print(new_device)
simulated_devices.append(new_device)
generateNewDevices(3)
for x in range(len(simulated_devices)):
print(simulated_devices[x])
Почему при печати через список значений в конце в списке отображаются данные "нового устройства" для добавленных JSON объектов "1 слой в глубину" (temp, status и name), но дублируют данные для "2 layer deep" (accx, accy, gpsla)?
.copy () находятся там, потому что у меня были проблемы с python append дублируя все значения вначале. Это какой-то вариант того же вопроса? Я даже попробовал .copy () прямо перед добавлением в список. (Я родом из ac / c ++, поэтому не до конца понимаю, почему python делает некоторые вещи)
Любая помощь приветствуется.
Kr, apuri123.