def daily_download(dataset_id): end_date = datetime.datetime.utcnow().replace(hour=0, minute=0, second=0, microsecond=0) start_date = end_date - datetime.timedelta(days=1) print("Date range: %s-%s" % (start_date, end_date)) dataset = Dataset(api=api, id=dataset_id) job = dataset.request_datafile(start_date, end_date) print("Waiting for the job to complete") job.wait_for_completion() output_filename = "dailydata-%s.csv" % start_date.strftime("%Y-%m-%d") job.save_to_file(output_filename) print("Daily download saved on:", output_filename)
"count": { "field": "RP_ENTITY_ID" } } }, { "average_news_count_90d": { "avg": { "field": "news_count_1d", "lookback": 90 } } }] custom_dataset = Dataset(api=api, name="Us30 indicators", filters=new_filters, fields=new_fields, frequency='daily') custom_dataset.save() print(custom_dataset) # query the datafile and save it to file job = custom_dataset.request_datafile( start_date='2017-01-01 19:30', end_date='2017-01-02 19:30', compressed=True, time_zone='Europe/London', ) job.save_to_file('output.csv')
if dataset_id is None: dataset = Dataset(api=api, filters={}, name='Average sentiment', frequency='daily', fields=[{ 'average_ess': { 'avg': { 'field': 'EVENT_SENTIMENT_SCORE' } } }]) dataset_id = dataset.save() else: dataset = api.get_dataset(dataset_id) # job = Job(api=api, # token='xxx') # if you already have a job you can use this # ... or request a new one job = dataset.request_datafile( start_date='2018-01-01 00:00:00', end_date='2018-01-02 00:00:00', ) # write only the ROLLUP rows for line in job.iterate_results(): timestamp, entity_id, entity_name, avg_sentiment = line if entity_id == 'ROLLUP': print(line)
dataset = Dataset(api, name='My Indicator dataset', filters={"relevance": {"$gt": 90}}, frequency='daily', fields=[{"avg_1d": {"avg": {"field": "EVENT_SENTIMENT_SCORE", "lookback": 1, "mode": "granular"}}}, {"avg_7d": { "avg": {"field": "avg_1d", "lookback": 1, "mode": "granular"}}}, {"buzz_365d": {"buzz": {"field": "RP_ENTITY_ID", "lookback": 365}}}, {"newsvolume_1d": {"count": {"field": "RP_ENTITY_ID", "lookback": 1}}}, {"newsvolume_365d": {"avg": {"field": "newsvolume_1d", "lookback": 365, "mode": "granular"}}}] ) dataset.save() # you can also change the fields, (remember to save afterward) dataset.fields = [ {"avg": {"avg": {"field": "EVENT_SENTIMENT_SCORE", "lookback": 365}}}, ] dataset.save() # Following this, you can then generate a datafile (for your desired date range) job = dataset.request_datafile( start_date='2018-04-10', end_date='2018-04-11', output_format='csv' ) job.save_to_file('output.csv') # This will poll until the file is ready for download # a convenience function to delete all the dataset given a name # delete_all_datasets_by_name(api, 'My Indicator dataset')