Note: You are looking at a static snapshot of documentation related to Robot Framework automations. The most recent documentation is at https://robocorp.com/docs

Get the latest data for each country

The traffic data is now filtered following the business rules. It still contains the data for all the available years per country. You are only interested in the latest traffic data.

You know a simple way to get what you want. First, you group the data using the three-letter country code. Since the data is already sorted descending by year, you can get the first row of each group to get the latest available traffic data for each country. Nifty!

producer.robot

*** Settings *** Documentation Inhuman Insurance, Inc. Artificial Intelligence System robot. ... Produces traffic data work items. Library Collections Library RPA.HTTP Library RPA.JSON Library RPA.Tables *** Variables *** ${TRAFFIC_JSON_FILE_PATH}= ${OUTPUT_DIR}${/}traffic.json *** Tasks *** Produce traffic data work items Download traffic data ${traffic_data}= Load traffic data as table ${filtered_data}= Filter and sort traffic data ${traffic_data} ${filtered_data}= Get latest data by country ${filtered_data} *** Keywords *** Download traffic data Download ... https://github.com/robocorp/inhuman-insurance-inc/raw/main/RS_198.json ... ${TRAFFIC_JSON_FILE_PATH} ... overwrite=True Load traffic data as table ${json}= Load JSON from file ${TRAFFIC_JSON_FILE_PATH} ${table}= Create Table ${json}[value] RETURN ${table} Filter and sort traffic data [Arguments] ${table} ${max_rate}= Set Variable ${5.0} ${rate_key}= Set Variable NumericValue ${gender_key}= Set Variable Dim1 ${both_genders}= Set Variable BTSX ${year_key}= Set Variable TimeDim Filter Table By Column ${table} ${rate_key} < ${max_rate} Filter Table By Column ${table} ${gender_key} == ${both_genders} Sort Table By Column ${table} ${year_key} False RETURN ${table} Get latest data by country [Arguments] ${table} ${country_key}= Set Variable SpatialDim ${table}= Group Table By Column ${table} ${country_key} ${latest_data_by_country}= Create List FOR ${group} IN @{table} ${first_row}= Pop Table Row ${group} Append To List ${latest_data_by_country} ${first_row} END RETURN ${latest_data_by_country}
  • The Get latest data by country keyword communicates the intent of the code by using clear naming.
  • The Group Table By Column keyword handles the grouping by country.
  • The Pop Table Row keyword gets the first row of a table.
  • This RPA.Tables library feels quite helpful indeed!

Preview grouped data