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': ['']}}
Created in deepnote.com Created in Deepnote