Create a JSON dictionary (and its inverse) from a list of tab-separated pairs

Create a JSON dictionary (and its inverse) from a list of tabbed pairs.kmmacros (26.4 KB)

To obtain two JSON dictionaries (one reversed: key:value ⇄ value:key) from a list like:

AL    ALABAMA
AK    ALASKA
AZ    ARIZONA
AR    ARKANSAS
CA    CALIFORNIA
CO    COLORADO
CT    CONNECTICUT
...

obtaining both:

{
  "AL": "ALABAMA",
  "AK": "ALASKA",
  "AZ": "ARIZONA",
  "AR": "ARKANSAS",
  "CA": "CALIFORNIA",
  "CO": "COLORADO",
  "CT": "CONNECTICUT",
  "DE": "DELAWARE",
  "FL": "FLORIDA",
  "GA": "GEORGIA",
  "HI": "HAWAII",
  "ID": "IDAHO",
  "IL": "ILLINOIS",
  "IN": "INDIANA",
  "IA": "IOWA",
  "KS": "KANSAS",
  "KY": "KENTUCKY",
  "LA": "LOUISIANA",
  "ME": "MAINE",
  "MD": "MARYLAND",
  "MA": "MASSACHUSETTS",
  "MI": "MICHIGAN",
  "MN": "MINNESOTA",
  "MS": "MISSISSIPPI",
  "MO": "MISSOURI",
  "MT": "MONTANA",
  "NE": "NEBRASKA",
  "NV": "NEVADA",
  "NH": "NEW HAMPSHIRE",
  "NJ": "NEW JERSEY",
  "NM": "NEW MEXICO",
  "NY": "NEW YORK",
  "NC": "NORTH CAROLINA",
  "ND": "NORTH DAKOTA",
  "OH": "OHIO",
  "OK": "OKLAHOMA",
  "OR": "OREGON",
  "PA": "PENNSYLVANIA",
  "RI": "RHODE ISLAND",
  "SC": "SOUTH CAROLINA",
  "SD": "SOUTH DAKOTA",
  "TN": "TENNESSEE",
  "TX": "TEXAS",
  "UT": "UTAH",
  "VT": "VERMONT",
  "VA": "VIRGINIA",
  "WA": "WASHINGTON",
  "WV": "WEST VIRGINIA",
  "WI": "WISCONSIN",
  "WY": "WYOMING"
}

and

{
  "ALABAMA": "AL",
  "ALASKA": "AK",
  "ARIZONA": "AZ",
  "ARKANSAS": "AR",
  "CALIFORNIA": "CA",
  "COLORADO": "CO",
  "CONNECTICUT": "CT",
  "DELAWARE": "DE",
  "FLORIDA": "FL",
  "GEORGIA": "GA",
  "HAWAII": "HI",
  "IDAHO": "ID",
  "ILLINOIS": "IL",
  "INDIANA": "IN",
  "IOWA": "IA",
  "KANSAS": "KS",
  "KENTUCKY": "KY",
  "LOUISIANA": "LA",
  "MAINE": "ME",
  "MARYLAND": "MD",
  "MASSACHUSETTS": "MA",
  "MICHIGAN": "MI",
  "MINNESOTA": "MN",
  "MISSISSIPPI": "MS",
  "MISSOURI": "MO",
  "MONTANA": "MT",
  "NEBRASKA": "NE",
  "NEVADA": "NV",
  "NEW HAMPSHIRE": "NH",
  "NEW JERSEY": "NJ",
  "NEW MEXICO": "NM",
  "NEW YORK": "NY",
  "NORTH CAROLINA": "NC",
  "NORTH DAKOTA": "ND",
  "OHIO": "OH",
  "OKLAHOMA": "OK",
  "OREGON": "OR",
  "PENNSYLVANIA": "PA",
  "RHODE ISLAND": "RI",
  "SOUTH CAROLINA": "SC",
  "SOUTH DAKOTA": "SD",
  "TENNESSEE": "TN",
  "TEXAS": "TX",
  "UTAH": "UT",
  "VERMONT": "VT",
  "VIRGINIA": "VA",
  "WASHINGTON": "WA",
  "WEST VIRGINIA": "WV",
  "WISCONSIN": "WI",
  "WYOMING": "WY"
}

We can do something like this:

4 Likes

For the use of JSON dictionaries with Keyboard Maestro's Prompt with List action, see:

1 Like