In Need a hint: show that a subset $E \subset \mathbb{R}$ with no limit points is at most countable, the OP constructs an interval $N_{r_x}(x)$ for each $x \in E$ such that $N_{r_x}(x) \cap E = \{x\}$. It is then hinted that the solution follows from the denseness of $\mathbb{Q}$ in $\mathbb{R}$.
I tried to construct a map from $E$ to $\mathbb{Q}$ sending $x$ onto a rational number $q_x$ with $q_x \in N_{r_x}(x)$ (which always exists, since we can always pick a rational number between $x -r_x$ and $x+r_x$. However, how can we argue that this map is injective? Or is this not what is intended by the hint?
Your proof is valid.
Your map is injective because your open balls are pairwise disjoint.
If $x\ne y$ then your $q_x$ and $q_y$ are in two disjoint open balls centered at $x$ and $y$ so $q_x \ne q_y$, that is the set is disjoint.