<!--- Verify first that your issue is not already reported on GitHub -->
<!--- Also test if the latest release and devel branch are affected too -->
<!--- Complete *all* sections as described, this form is processed automatically -->

##### SUMMARY
<!--- Explain the problem briefly below -->
`ansible-inventory` fails with an unexpected exception if it encounters a dict in host vars that contains both numbers and letters as keys.

##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME
<!--- Write the short name of the module, plugin, task or feature below, use your best guess if unsure -->
inventory

##### ANSIBLE VERSION
<!--- Paste verbatim output from "ansible --version" between quotes -->
```paste below
[:~/git/ansible/ansible] [venv] devel* ± ansible --version
[WARNING]: You are running the development version of Ansible. You should only run Ansible from "devel" if you are
modifying the Ansible engine, or trying out features under development. This is a rapidly changing source of code and
can become unstable at any point.
ansible 2.10.0.dev0
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['/home/tore/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /home/tore/git/ansible/ansible/lib/ansible
  executable location = /home/tore/git/ansible/ansible/bin/ansible
  python version = 3.7.6 (default, Jan 30 2020, 09:44:41) [GCC 9.2.1 20190827 (Red Hat 9.2.1-1)]
```

##### CONFIGURATION
<!--- Paste verbatim output from "ansible-config dump --only-changed" between quotes -->
```paste below
[:~/git/ansible/ansible] [venv] devel* ± ansible-config dump --only-changed
[WARNING]: You are running the development version of Ansible. You should only run Ansible from "devel" if you are
modifying the Ansible engine, or trying out features under development. This is a rapidly changing source of code and
can become unstable at any point.
```

##### OS / ENVIRONMENT
<!--- Provide all relevant information below, e.g. target OS versions, network device firmware, etc. -->
```
[:~/git/ansible/ansible] [venv] devel* ± lsb_release -a
LSB Version:    :core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch:printing-4.1-amd64:printing-4.1-noarch
Distributor ID: Fedora
Description:    Fedora release 31 (Thirty One)
Release:        31
Codename:       ThirtyOne
```

##### STEPS TO REPRODUCE
<!--- Describe exactly how to reproduce the problem, using a minimal test-case -->

<!--- Paste example playbooks or commands between quotes below -->
```console
$ echo test > inventory
$ mkdir host_vars
$ echo -e 'x:\n  a: 1\n  0: 1' > host_vars/test.yml
$ ansible-inventory -i inventory --list
```

<!--- HINT: You can paste gist.github.com links for larger files -->

##### EXPECTED RESULTS
<!--- Describe what you expected to happen when running the steps above -->

Output like:

```json
{
    "_meta": {
        "hostvars": {
            "test": {
                "x": {
                    "a": 1,
                    "0": 1
                }
            }
        }
    },
    "all": {
        "children": [
            "ungrouped"
        ]
    },
    "ungrouped": {
        "hosts": [
            "test"
        ]
    }
}
```

##### ACTUAL RESULTS
<!--- Describe what actually happened. If possible run with extra verbosity (-vvvv) -->

<!--- Paste verbatim command output between quotes -->
```paste below
[WARNING]: You are running the development version of Ansible. You should only run Ansible from "devel" if you are
modifying the Ansible engine, or trying out features under development. This is a rapidly changing source of code and
can become unstable at any point.
ansible-inventory 2.10.0.dev0
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['/home/tore/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /home/tore/git/ansible/ansible/lib/ansible
  executable location = /home/tore/git/ansible/ansible/bin/ansible-inventory
  python version = 3.7.6 (default, Jan 30 2020, 09:44:41) [GCC 9.2.1 20190827 (Red Hat 9.2.1-1)]
Using /etc/ansible/ansible.cfg as config file
host_list declined parsing /home/tore/git/ansible/ansible/inventory as it did not pass its verify_file() method
script declined parsing /home/tore/git/ansible/ansible/inventory as it did not pass its verify_file() method
auto declined parsing /home/tore/git/ansible/ansible/inventory as it did not pass its verify_file() method
Parsed /home/tore/git/ansible/ansible/inventory inventory source with ini plugin
ERROR! Unexpected Exception, this is probably a bug: '<' not supported between instances of 'int' and 'AnsibleUnicode'
the full traceback was:

Traceback (most recent call last):
  File "/home/tore/git/ansible/ansible/bin/ansible-inventory", line 123, in <module>
    exit_code = cli.run()
  File "/home/tore/git/ansible/ansible/lib/ansible/cli/inventory.py", line 151, in run
    results = self.dump(results)
  File "/home/tore/git/ansible/ansible/lib/ansible/cli/inventory.py", line 185, in dump
    results = json.dumps(stuff, cls=AnsibleJSONEncoder, sort_keys=True, indent=4, preprocess_unsafe=True)
  File "/usr/lib64/python3.7/json/__init__.py", line 238, in dumps
    **kw).encode(obj)
  File "/usr/lib64/python3.7/json/encoder.py", line 201, in encode
    chunks = list(chunks)
  File "/usr/lib64/python3.7/json/encoder.py", line 431, in _iterencode
    yield from _iterencode_dict(o, _current_indent_level)
  File "/usr/lib64/python3.7/json/encoder.py", line 405, in _iterencode_dict
    yield from chunks
  File "/usr/lib64/python3.7/json/encoder.py", line 405, in _iterencode_dict
    yield from chunks
  File "/usr/lib64/python3.7/json/encoder.py", line 405, in _iterencode_dict
    yield from chunks
  [Previous line repeated 1 more time]
  File "/usr/lib64/python3.7/json/encoder.py", line 353, in _iterencode_dict
    items = sorted(dct.items(), key=lambda kv: kv[0])
TypeError: '<' not supported between instances of 'int' and 'AnsibleUnicode'
```

from __future__ import (absolute_import, division, print_function)
__metaclass__ = type
import sys
import argparse
from operator import attrgetter
from ansible import constants as C
from ansible import context
from ansible.cli import CLI
from ansible.cli.arguments import option_helpers as opt_help
from ansible.errors import AnsibleError, AnsibleOptionsError
from ansible.module_utils._text import to_bytes, to_native
from ansible.utils.vars import combine_vars
from ansible.utils.display import Display
from ansible.vars.plugins import get_vars_from_inventory_sources, get_vars_from_path