Demo for datapackage
5. Demo for datapackage#
datapackage
is a great python packaged developed by frictionlessdata.
from datapackage import Package
dpk_uri = "https://raw.githubusercontent.com/DataHerb/dataset-data-science-job/main/datapackage.json"
package = Package(dpk_uri)
package.get_resource('resource').read()
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
/tmp/ipykernel_79/911372333.py in <module>
----> 1 package.get_resource('resource').read()
AttributeError: 'NoneType' object has no attribute 'read'
package.descriptor
{'profile': 'tabular-data-package',
'resources': [{'path': 'dataset/stackoverflow_job_listing.csv',
'profile': 'tabular-data-resource',
'name': 'stackoverflow_job_listing',
'format': 'csv',
'mediatype': 'text/csv',
'encoding': 'utf-8',
'schema': {'fields': [{'name': 'link',
'type': 'string',
'format': 'default'},
{'name': 'category', 'type': 'string', 'format': 'default'},
{'name': 'title', 'type': 'string', 'format': 'default'},
{'name': 'description', 'type': 'string', 'format': 'default'},
{'name': 'published_at', 'type': 'string', 'format': 'default'},
{'name': 'location', 'type': 'string', 'format': 'default'},
{'name': 'stackoverflow_id', 'type': 'integer', 'format': 'default'},
{'name': 'author', 'type': 'string', 'format': 'default'},
{'name': 'location_country', 'type': 'string', 'format': 'default'},
{'name': 'location_city', 'type': 'string', 'format': 'default'},
{'name': 'updated_at', 'type': 'string', 'format': 'default'}],
'missingValues': ['']}}]}
package.resources[0].descriptor
{'path': 'dataset/stackoverflow_job_listing.csv',
'profile': 'tabular-data-resource',
'name': 'stackoverflow_job_listing',
'format': 'csv',
'mediatype': 'text/csv',
'encoding': 'utf-8',
'schema': {'fields': [{'name': 'link', 'type': 'string', 'format': 'default'},
{'name': 'category', 'type': 'string', 'format': 'default'},
{'name': 'title', 'type': 'string', 'format': 'default'},
{'name': 'description', 'type': 'string', 'format': 'default'},
{'name': 'published_at', 'type': 'string', 'format': 'default'},
{'name': 'location', 'type': 'string', 'format': 'default'},
{'name': 'stackoverflow_id', 'type': 'integer', 'format': 'default'},
{'name': 'author', 'type': 'string', 'format': 'default'},
{'name': 'location_country', 'type': 'string', 'format': 'default'},
{'name': 'location_city', 'type': 'string', 'format': 'default'},
{'name': 'updated_at', 'type': 'string', 'format': 'default'}],
'missingValues': ['']}}