It’s best to not hard-code names of methods as strings and use ‘call’ method to call them.
I’d also avoid using get_node for same reasons. Instead, define an @onready variable at the top of your script that references that scene/node. If you drag the “monsters” node to your script file while holding CTRL and then release mouse button while still holding CTLR, the editor will add the variable for you, like so:
@onready var monsters = $monsters
var name_enemy
var hp_enemy
func _ready()
var monster = monsters.random_monster()
name_enemy = monster["name"]
hp_enemy = monster["hp"]
Multiple ways to implement this, and multiple levels of abstraction you could have, but as far as exactly what you described, the solution above would make adding more monsters a lot easier.