Global Site Variables (Static Page?)
Define "best". It's one way of doing it but has a couple of issues. They need to log in to see this (I presume, otherwise one issue is that there are public facing things on the website no actual visitor cares about) but it's not in the dashboard. So there's a log in then navigate to the front end and get the page workflow which is less than ideal) Why not just put them in a global table field and let the client view/copy/edit them there?
Your merge needs square brackets. You're trying to merge an object not an array. Try


{% set theRows = craft.entries.section('theSection').one() %}
{% set siteVariables = [] %}
{% for row in theRows %}
  {% set siteVariables = siteVariables | merge([{ (row.name): row.value}]) %}
{% endfor %}