GIS module does not access ArcGIS Hub

1384
12
Jump to solution
10-13-2022 08:25 AM
JaredPilbeam2
MVP Regular Contributor

I can use the GIS module on our organization's Community Hub site.

rom arcgis.gis import GIS
gis = GIS("https://willcounty.maps.arcgis.com/", "user", "password")

 But, I can't on ArcGIS Hub. This attempt is from an anaconda environment. I also tried from an Pro environment and got same error.

from arcgis.gis import GIS
gis = GIS("https://willcountygis.hub.arcgis.com/", "username", "password")

#Error:
---------------------------------------------------------------------------
JSONDecodeError                           Traceback (most recent call last)
<ipython-input-5-0190cb412727> in <module>
      1 from arcgis.gis import GIS
----> 2 gis = GIS("https://willcountygis.hub.arcgis.com/", "username", "password")

c:\ProgramData\Anaconda3\envs\py37\lib\site-packages\arcgis\gis\__init__.py in __init__(self, url, username, password, key_file, cert_file, verify_cert, set_active, client_id, profile, **kwargs)
    481                 )
    482             else:
--> 483                 raise e
    484         try:
    485             if (

c:\ProgramData\Anaconda3\envs\py37\lib\site-packages\arcgis\gis\__init__.py in __init__(self, url, username, password, key_file, cert_file, verify_cert, set_active, client_id, profile, **kwargs)
    442                 trust_env=kwargs.get("trust_env", None),
    443                 timeout=self._timeout,
--> 444                 proxy=kwargs.get("proxy", None),
    445             )
    446             if self._portal.is_kubernetes:

c:\ProgramData\Anaconda3\envs\py37\lib\site-packages\arcgis\gis\_impl\_portalpy.py in __init__(self, url, username, password, key_file, cert_file, expiration, referer, proxy_host, proxy_port, connection, workdir, tokenurl, verify_cert, client_id, custom_auth, token, **kwargs)
    203                 )
    204         # self.get_version(True)
--> 205         self.get_properties(True)
    206 
    207     def add_group_users(self, user_names, group_id, admin_names):

c:\ProgramData\Anaconda3\envs\py37\lib\site-packages\arcgis\gis\_impl\_portalpy.py in get_properties(self, force)
   1225                     )  # issue seen with key, cert auth
   1226                 if not resp:
-> 1227                     raise e
   1228 
   1229             if resp:

c:\ProgramData\Anaconda3\envs\py37\lib\site-packages\arcgis\gis\_impl\_portalpy.py in get_properties(self, force)
   1205             resp = None
   1206             try:
-> 1207                 resp = self.con.post(path, self._postdata(), ssl=True)
   1208             except Exception as e:
   1209                 if (

c:\ProgramData\Anaconda3\envs\py37\lib\site-packages\arcgis\gis\_impl\_con\_connection.py in post(self, path, params, files, **kwargs)
    964                     params.pop("token", None)
    965                     # pass
--> 966             elif token_as_header == False and self.token is not None:  # as ?token=
...
    354         except StopIteration as err:
--> 355             raise JSONDecodeError("Expecting value", s, err.value) from None
    356         return obj, end

JSONDecodeError: Expecting value: line 1 column 1 (char 0)

 

According to the GIS Module help docs it doesn't look like you can access Hub. Is there any other way?

GIS : represents the GIS, either ArcGIS Online or an ArcGIS Portal

 

0 Kudos
12 Replies
ManushiMajumdar
Esri Contributor

The content in your Hub is hosted within an ArcGIS Organization. Here is an example to access that content using the ArcGIS API for Python.

Hub's submodule within the Python API or Hub's library (arcgishub) can be used specifically for managing your Hub items (initiatives, sites, pages).

0 Kudos
JaredPilbeam2
MVP Regular Contributor

Sorry to keep dragging this out, but I'm pretty sure what you're telling me is what I'm doing.

Ok, let's try another way. Can you access these nine Hub Site Applications listed on https://hub.arcgis.com via the Python API?

JaredPilbeam2_0-1665783176786.png

 

0 Kudos
ManushiMajumdar
Esri Contributor

Yes, since they are of type `Hub Site Application` you can also access them using  Hub's Python API. Look at the examples in the repository for guides on how to do it. For non Hub item types you can use the Python API.