Добавьте цикл вне этого, если вы хотите обновить тот же дикт.
import subprocess
import json
my_dict = {}
for j in range(5):
for i in range(j*10, j*10 + 10):
x=subprocess.Popen(["python","first.py"],shell=True, stdout=subprocess.PIPE)
output = x.communicate()
my_dict.update({i: json.loads(output[0])})
Объяснение - range(j*10, j*10 + 10)
Он в основном изменяет диапазон dict в соответствии с другим циклом, так что значения не переопределяются, и dict расширяется соответственно с изменением цикла.
Ранее это было обновление того же 10 indices
из dict.
Надеюсь, это поможет.