html_url,issue_url,id,node_id,user,created_at,updated_at,author_association,body,reactions,performed_via_github_app,issue https://github.com/pydata/xarray/issues/432#issuecomment-234598308,https://api.github.com/repos/pydata/xarray/issues/432,234598308,MDEyOklzc3VlQ29tbWVudDIzNDU5ODMwOA==,4806877,2016-07-22T17:00:29Z,2016-07-22T17:16:16Z,CONTRIBUTOR,"Ok. That makes sense. I added a function to common and submitted a pull request: #917 ","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,88075523 https://github.com/pydata/xarray/issues/432#issuecomment-234540415,https://api.github.com/repos/pydata/xarray/issues/432,234540415,MDEyOklzc3VlQ29tbWVudDIzNDU0MDQxNQ==,4806877,2016-07-22T13:14:43Z,2016-07-22T13:14:43Z,CONTRIBUTOR,"I agree. .3. Couldn't this make the `dict` blow up for large datasets? Maybe there could be a flag that lets the user decide whether to leave the data in its current form (could use `self.data` in case it is a dask array) 6. The trouble with `xarray.DataArray` is that it doesn't require a name but it can have one. Is that something that we would want to preserve? If not, then maybe it would look more like this. ``` tolist=True d = {'coords': {}, 'attrs': dict(self.attrs), 'dims': self.dims} def func(x, tolist): if tolist: return x.tolist() return x for k in self.coords: d['coords'].update({k: {'data': func(self[k].data, tolist), 'dims': list(self[k].dims), 'attrs': dict(self[k].attrs)}}) if hasattr(self, 'data_vars'): d.update({'data_vars': {}}) for k in self.data_vars: d['data_vars'].update({k: {'data': func(self[k].data, tolist), 'dims': list(self[k].dims), 'attrs': dict(self[k].attrs)}}) else: d.update({'data': func(self.data, tolist)}) ``` ","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,88075523 https://github.com/pydata/xarray/issues/432#issuecomment-234082452,https://api.github.com/repos/pydata/xarray/issues/432,234082452,MDEyOklzc3VlQ29tbWVudDIzNDA4MjQ1Mg==,4806877,2016-07-20T21:03:33Z,2016-07-20T21:03:33Z,CONTRIBUTOR,"Is this still of interest? I was thinking it would look something like this: ``` d = {'coordinates': {}, 'variables': {}, 'attributes': {}} d['attributes'].update(dict(self.attrs)) for k in self.coords: d['coordinates'].update({k: {'data': self[k].data, 'dimensions': list(self[k].dims), 'attributes': dict(self[k].attrs)}}) if hasattr(self, 'data_vars'): for k in self.data_vars: d['variables'].update({k: {'data': self[k].data, 'dimensions': list(self[k].dims), 'attributes': dict(self[k].attrs)}}) else: d['variables'].update({'data': self.data, 'dimensions': list(self.dims), 'attributes': dict(self.attrs)}) ``` ","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,88075523