OCHA-DAP / hdx-python-api

Python API for interacting with the HDX Data Portal
http://data.humdata.org
MIT License
80 stars 16 forks source link

string indices must be integers, not str #16

Closed kartikbha closed 6 years ago

kartikbha commented 6 years ago

demo = RemoteCKAN('http://10.11.35.55:5050/', apikey='31ccccccc', user_agent='admin') configuration = Configuration.create(hdx_site='prod',hdx_key="31cccccc",user_agent='admin',remoteckan=demo) organization = Organization(configuration=configuration) organization['name'] = 'cc' organization['title'] = 'cc' organization['description'] = 'cc' organization['id'] = 'cc' organization['test'] = 'jfccjfjf' organization.create_in_hdx()

Traceback (most recent call last): File "", line 1, in File "/usr/local/lib/python2.7/dist-packages/hdx/data/organization.py", line 117, in create_in_hdx self._create_in_hdx('organization', 'id', 'name') File "/usr/local/lib/python2.7/dist-packages/hdx/data/hdxobject.py", line 320, in _create_in_hdx self.check_required_fields() File "/usr/local/lib/python2.7/dist-packages/hdx/data/organization.py", line 99, in check_required_fields self._check_required_fields('organization', ignore_fields) File "/usr/local/lib/python2.7/dist-packages/hdx/data/hdxobject.py", line 204, in _check_required_fields for field in self.configuration[object_type]['required_fields']: TypeError: string indices must be integers, not str

mcarans commented 6 years ago

Apologies for not replying to this earlier. You do not need to pass the configuration to Organization() - it will use the global one by default. If you do want to create a Configuration object and pass it, then you can just use configuration = Configuration(parameters).