diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 0000000..b6a7d89 --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +16 diff --git a/README.md b/README.md index 1cc227c..b3c3fc1 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ # 🈸 Features -- Preview `.json` `.arrow` `.avro` `.parquet` `.yml` `.csv/.tsv` & `.xlsx/.xlsb` data files in a Data Grid w/Sorting & Filtering +- Preview `.json` `.arrow` `.avro` `.parquet` `.yml` `.csv/.tsv` `.xlsx/.xlsb` & `.edn` data files in a Data Grid w/Sorting & Filtering - Grid Data Summary display w/Aggregate Functions, Row & Column Pivots (a.k.a. `Group By` & `Split By`) - Basic Charts 📊 creation w/Aggregate Functions, Row & Column Pivots - Pluggable Charting 📊 libraries for bult-in Charts: [d3fc](https://d3fc.io/) || [highcharts](https://www.highcharts.com/demo) @@ -27,7 +27,7 @@ - Property Grid display for `.json` `.config` `.env` `.properties` `.ini` & `.yml` configuration files - Open Data Preview on Side option for slim data || config files - Quick Launch new Data Preview input box for data files in open workspace -- Save Filtered Data Grid || Chart 📊 Data in `.arrow` `.csv` `.json(s)` `.yml` & `.properties` formats +- Save Filtered Data Grid || Chart 📊 Data in `.arrow` `.csv` `.json(s)` `.yml` `.edn` & `.properties` formats - Save & Load Data View `.config` options - Dark, Light, Dense & High Contrast Blue Data Preview 🈸 Panel UI Themes @@ -72,7 +72,7 @@ Data Preview 🈸 example using `dark` UI theme with `d3fc` Charts 📊 Data Vie ## Data Preview 🈸 Launch Tips 1. Run `View -> Command Palette...>Data: Preview Data` command or `Ctrl+Shift+D` in an open -`.json` `.config` `.env` `.properties` `.ini` `.yml` or `.csv/.tsv` text data file document to launch Data Preview panel. +`.json` `.config` `.env` `.properties` `.ini` `.yml` `.edn` or `.csv/.tsv` text data file document to launch Data Preview panel. 2. `File -> Save` (`Ctrl+S`) your text data file for immediate updates in an open Data Preview 🈸 panel. 3. Right-click on a Binary `.xlsx/.xlsb`, `.arrow` or `.avro` data file in VSCode File Explorer to launch Data Preview panel. 4. Use exposed `explorer/context`, `editor/title` or `editor/title/context` Preview Data 🈸 or Preview Data on Side context menu options to preview your data files. @@ -98,7 +98,7 @@ to launch Data Preview for remote `http(s)` data files. Use Data Preview 🈸 to: - Load large data files for sorting, filtering & charting 📊 -- Export displayed data in a compact binary `.arrow` data format, `.ods` `.xlsb` || `.xlsx` spreadsheet format, or `.csv` `.json` `.yml` `.md` or `.properties` text formats +- Export displayed data in a compact binary `.arrow` data format, `.ods` `.xlsb` || `.xlsx` spreadsheet format, or `.csv` `.json` `.yml` `.md` `.edn` or `.properties` text formats - Preview `.properites` and other key-value pairs configuration files to reformat them or find set config option values - Generate Arrow & Avro `.shema.json` for metadata text preview of those binary data files - Generate `.json` files for text data preview of binary Excel files @@ -114,6 +114,7 @@ Use Data Preview 🈸 to: [`data/avro`](https://github.com/RandomFractals/vscode-data-preview/tree/master/data/avro) [`data/parquet`](https://github.com/RandomFractals/vscode-data-preview/tree/master/data/parquet) [`data/config`](https://github.com/RandomFractals/vscode-data-preview/tree/master/data/config) +[`data/edn`](https://github.com/RandomFractals/vscode-data-preview/tree/master/data/edn) [`data/excel`](https://github.com/RandomFractals/vscode-data-preview/tree/master/data/excel) [`data/json`](https://github.com/RandomFractals/vscode-data-preview/tree/master/data/json) [`data/yaml`](https://github.com/RandomFractals/vscode-data-preview/tree/master/data/yaml) @@ -125,7 +126,7 @@ Use Data Preview 🈸 to: ```js { - "when": "resourceFilename =~ /.*\\.(json|jsonl|json5|hjson|ndjson|arrow|arr|avro|parquet|env|config|properties|ini|yml|md|csv|tsv|txt|tab|dif|ods|xls|xlsb|xlsx|xlsm|xml|html)/", + "when": "resourceFilename =~ /.*\\.(json|jsonl|json5|hjson|ndjson|arrow|arr|avro|parquet|edn|env|config|properties|ini|yml|md|csv|tsv|txt|tab|dif|ods|xls|xlsb|xlsx|xlsm|xml|html)/", "command": "data.preview", "group": "navigation" } @@ -146,6 +147,7 @@ for more info. | `.arrow` `.arr` | binary | [apache-arrow](https://github.com/apache/arrow/tree/master/js)/[`Table.from()`](https://github.com/apache/arrow/tree/master/js#get-a-table-from-an-arrow-file-on-disk-in-ipc-format) | https://arrow.apache.org/ | | `.parquet` | binary | [parquets](https://github.com/kbajalc/parquets)/[`ParquetReader.openFile()`](https://github.com/kbajalc/parquets#usage-reading-files) | https://parquet.apache.org/documentation/latest | | `.properties` `.env` | text | [node-properties](https://github.com/gagle/node-properties)/[`properties.parse()`](https://github.com/gagle/node-properties#parse) | https://en.wikipedia.org/wiki/.properties | +| `.edn` | text | [edn-data](https://github.com/jorinvo/edn-data)/[`parseEDNString()`](https://github.com/jorinvo/edn-data#parsing-edn) | https://github.com/edn-format/edn | | `.ini` | text | [node-properties](https://github.com/gagle/node-properties)/[`properties.parse()`](https://github.com/gagle/node-properties#ini) | https://en.wikipedia.org/wiki/INI_file | | `.md` | text | [RegExp](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp)/[`markdownToCsv()`](https://github.com/RandomFractals/vscode-data-preview/blob/f7d8db4062914822c3e74cfd6259a90cdc051b82/src/data.preview.ts#L1035)| https://en.wikipedia.org/wiki/Markdown | | `.yml` `.yaml` | text | [js-yaml](https://github.com/nodeca/js-yaml)/[`yaml.load()`](https://github.com/nodeca/js-yaml#load-string---options-) | https://yaml.org/ | diff --git a/data/edn/cars.edn b/data/edn/cars.edn new file mode 100644 index 0000000..96f7833 --- /dev/null +++ b/data/edn/cars.edn @@ -0,0 +1,406 @@ +[{:Name "chevrolet chevelle malibu" :Miles_per_Gallon 18 :Cylinders 8 :Displacement 307 :Horsepower 130 :Weight_in_lbs 3504 :Acceleration 12 :Year "1/1/1970" :Origin "USA"} +{:Name "buick skylark 320" :Miles_per_Gallon 15 :Cylinders 8 :Displacement 350 :Horsepower 165 :Weight_in_lbs 3693 :Acceleration 11 :Year "1/1/1970" :Origin "USA"} +{:Name "plymouth satellite" :Miles_per_Gallon 18 :Cylinders 8 :Displacement 318 :Horsepower 150 :Weight_in_lbs 3436 :Acceleration 11 :Year "1/1/1970" :Origin "USA"} +{:Name "amc rebel sst" :Miles_per_Gallon 16 :Cylinders 8 :Displacement 304 :Horsepower 150 :Weight_in_lbs 3433 :Acceleration 12 :Year "1/1/1970" :Origin "USA"} +{:Name "ford torino" :Miles_per_Gallon 17 :Cylinders 8 :Displacement 302 :Horsepower 140 :Weight_in_lbs 3449 :Acceleration 10 :Year "1/1/1970" :Origin "USA"} +{:Name "ford galaxie 500" :Miles_per_Gallon 15 :Cylinders 8 :Displacement 429 :Horsepower 198 :Weight_in_lbs 4341 :Acceleration 10 :Year "1/1/1970" :Origin "USA"} +{:Name "chevrolet impala" :Miles_per_Gallon 14 :Cylinders 8 :Displacement 454 :Horsepower 220 :Weight_in_lbs 4354 :Acceleration 9 :Year "1/1/1970" :Origin "USA"} +{:Name "plymouth fury iii" :Miles_per_Gallon 14 :Cylinders 8 :Displacement 440 :Horsepower 215 :Weight_in_lbs 4312 :Acceleration 8 :Year "1/1/1970" :Origin "USA"} +{:Name "pontiac catalina" :Miles_per_Gallon 14 :Cylinders 8 :Displacement 455 :Horsepower 225 :Weight_in_lbs 4425 :Acceleration 10 :Year "1/1/1970" :Origin "USA"} +{:Name "amc ambassador dpl" :Miles_per_Gallon 15 :Cylinders 8 :Displacement 390 :Horsepower 190 :Weight_in_lbs 3850 :Acceleration 8 :Year "1/1/1970" :Origin "USA"} +{:Name "citroen ds-21 pallas" :Miles_per_Gallon nil :Cylinders 4 :Displacement 133 :Horsepower 115 :Weight_in_lbs 3090 :Acceleration 17 :Year "1/1/1970" :Origin "Europe"} +{:Name "chevrolet chevelle concours (sw)" :Miles_per_Gallon nil :Cylinders 8 :Displacement 350 :Horsepower 165 :Weight_in_lbs 4142 :Acceleration 11 :Year "1/1/1970" :Origin "USA"} +{:Name "ford torino (sw)" :Miles_per_Gallon nil :Cylinders 8 :Displacement 351 :Horsepower 153 :Weight_in_lbs 4034 :Acceleration 11 :Year "1/1/1970" :Origin "USA"} +{:Name "plymouth satellite (sw)" :Miles_per_Gallon nil :Cylinders 8 :Displacement 383 :Horsepower 175 :Weight_in_lbs 4166 :Acceleration 10 :Year "1/1/1970" :Origin "USA"} +{:Name "amc rebel sst (sw)" :Miles_per_Gallon nil :Cylinders 8 :Displacement 360 :Horsepower 175 :Weight_in_lbs 3850 :Acceleration 11 :Year "1/1/1970" :Origin "USA"} +{:Name "dodge challenger se" :Miles_per_Gallon 15 :Cylinders 8 :Displacement 383 :Horsepower 170 :Weight_in_lbs 3563 :Acceleration 10 :Year "1/1/1970" :Origin "USA"} +{:Name "plymouth 'cuda 340" :Miles_per_Gallon 14 :Cylinders 8 :Displacement 340 :Horsepower 160 :Weight_in_lbs 3609 :Acceleration 8 :Year "1/1/1970" :Origin "USA"} +{:Name "ford mustang boss 302" :Miles_per_Gallon nil :Cylinders 8 :Displacement 302 :Horsepower 140 :Weight_in_lbs 3353 :Acceleration 8 :Year "1/1/1970" :Origin "USA"} +{:Name "chevrolet monte carlo" :Miles_per_Gallon 15 :Cylinders 8 :Displacement 400 :Horsepower 150 :Weight_in_lbs 3761 :Acceleration 9 :Year "1/1/1970" :Origin "USA"} +{:Name "buick estate wagon (sw)" :Miles_per_Gallon 14 :Cylinders 8 :Displacement 455 :Horsepower 225 :Weight_in_lbs 3086 :Acceleration 10 :Year "1/1/1970" :Origin "USA"} +{:Name "toyota corona mark ii" :Miles_per_Gallon 24 :Cylinders 4 :Displacement 113 :Horsepower 95 :Weight_in_lbs 2372 :Acceleration 15 :Year "1/1/1970" :Origin "Japan"} +{:Name "plymouth duster" :Miles_per_Gallon 22 :Cylinders 6 :Displacement 198 :Horsepower 95 :Weight_in_lbs 2833 :Acceleration 15 :Year "1/1/1970" :Origin "USA"} +{:Name "amc hornet" :Miles_per_Gallon 18 :Cylinders 6 :Displacement 199 :Horsepower 97 :Weight_in_lbs 2774 :Acceleration 15 :Year "1/1/1970" :Origin "USA"} +{:Name "ford maverick" :Miles_per_Gallon 21 :Cylinders 6 :Displacement 200 :Horsepower 85 :Weight_in_lbs 2587 :Acceleration 16 :Year "1/1/1970" :Origin "USA"} +{:Name "datsun pl510" :Miles_per_Gallon 27 :Cylinders 4 :Displacement 97 :Horsepower 88 :Weight_in_lbs 2130 :Acceleration 14 :Year "1/1/1970" :Origin "Japan"} +{:Name "volkswagen 1131 deluxe sedan" :Miles_per_Gallon 26 :Cylinders 4 :Displacement 97 :Horsepower 46 :Weight_in_lbs 1835 :Acceleration 20 :Year "1/1/1970" :Origin "Europe"} +{:Name "peugeot 504" :Miles_per_Gallon 25 :Cylinders 4 :Displacement 110 :Horsepower 87 :Weight_in_lbs 2672 :Acceleration 17 :Year "1/1/1970" :Origin "Europe"} +{:Name "audi 100 ls" :Miles_per_Gallon 24 :Cylinders 4 :Displacement 107 :Horsepower 90 :Weight_in_lbs 2430 :Acceleration 14 :Year "1/1/1970" :Origin "Europe"} +{:Name "saab 99e" :Miles_per_Gallon 25 :Cylinders 4 :Displacement 104 :Horsepower 95 :Weight_in_lbs 2375 :Acceleration 17 :Year "1/1/1970" :Origin "Europe"} +{:Name "bmw 2002" :Miles_per_Gallon 26 :Cylinders 4 :Displacement 121 :Horsepower 113 :Weight_in_lbs 2234 :Acceleration 12 :Year "1/1/1970" :Origin "Europe"} +{:Name "amc gremlin" :Miles_per_Gallon 21 :Cylinders 6 :Displacement 199 :Horsepower 90 :Weight_in_lbs 2648 :Acceleration 15 :Year "1/1/1970" :Origin "USA"} +{:Name "ford f250" :Miles_per_Gallon 10 :Cylinders 8 :Displacement 360 :Horsepower 215 :Weight_in_lbs 4615 :Acceleration 14 :Year "1/1/1970" :Origin "USA"} +{:Name "chevy c20" :Miles_per_Gallon 10 :Cylinders 8 :Displacement 307 :Horsepower 200 :Weight_in_lbs 4376 :Acceleration 15 :Year "1/1/1970" :Origin "USA"} +{:Name "dodge d200" :Miles_per_Gallon 11 :Cylinders 8 :Displacement 318 :Horsepower 210 :Weight_in_lbs 4382 :Acceleration 13 :Year "1/1/1970" :Origin "USA"} +{:Name "hi 1200d" :Miles_per_Gallon 9 :Cylinders 8 :Displacement 304 :Horsepower 193 :Weight_in_lbs 4732 :Acceleration 18 :Year "1/1/1970" :Origin "USA"} +{:Name "datsun pl510" :Miles_per_Gallon 27 :Cylinders 4 :Displacement 97 :Horsepower 88 :Weight_in_lbs 2130 :Acceleration 14 :Year "1/1/1971" :Origin "Japan"} +{:Name "chevrolet vega 2300" :Miles_per_Gallon 28 :Cylinders 4 :Displacement 140 :Horsepower 90 :Weight_in_lbs 2264 :Acceleration 15 :Year "1/1/1971" :Origin "USA"} +{:Name "toyota corona" :Miles_per_Gallon 25 :Cylinders 4 :Displacement 113 :Horsepower 95 :Weight_in_lbs 2228 :Acceleration 14 :Year "1/1/1971" :Origin "Japan"} +{:Name "ford pinto" :Miles_per_Gallon 25 :Cylinders 4 :Displacement 98 :Horsepower nil :Weight_in_lbs 2046 :Acceleration 19 :Year "1/1/1971" :Origin "USA"} +{:Name "volkswagen super beetle 117" :Miles_per_Gallon nil :Cylinders 4 :Displacement 97 :Horsepower 48 :Weight_in_lbs 1978 :Acceleration 20 :Year "1/1/1971" :Origin "Europe"} +{:Name "amc gremlin" :Miles_per_Gallon 19 :Cylinders 6 :Displacement 232 :Horsepower 100 :Weight_in_lbs 2634 :Acceleration 13 :Year "1/1/1971" :Origin "USA"} +{:Name "plymouth satellite custom" :Miles_per_Gallon 16 :Cylinders 6 :Displacement 225 :Horsepower 105 :Weight_in_lbs 3439 :Acceleration 15 :Year "1/1/1971" :Origin "USA"} +{:Name "chevrolet chevelle malibu" :Miles_per_Gallon 17 :Cylinders 6 :Displacement 250 :Horsepower 100 :Weight_in_lbs 3329 :Acceleration 15 :Year "1/1/1971" :Origin "USA"} +{:Name "ford torino 500" :Miles_per_Gallon 19 :Cylinders 6 :Displacement 250 :Horsepower 88 :Weight_in_lbs 3302 :Acceleration 15 :Year "1/1/1971" :Origin "USA"} +{:Name "amc matador" :Miles_per_Gallon 18 :Cylinders 6 :Displacement 232 :Horsepower 100 :Weight_in_lbs 3288 :Acceleration 15 :Year "1/1/1971" :Origin "USA"} +{:Name "chevrolet impala" :Miles_per_Gallon 14 :Cylinders 8 :Displacement 350 :Horsepower 165 :Weight_in_lbs 4209 :Acceleration 12 :Year "1/1/1971" :Origin "USA"} +{:Name "pontiac catalina brougham" :Miles_per_Gallon 14 :Cylinders 8 :Displacement 400 :Horsepower 175 :Weight_in_lbs 4464 :Acceleration 11 :Year "1/1/1971" :Origin "USA"} +{:Name "ford galaxie 500" :Miles_per_Gallon 14 :Cylinders 8 :Displacement 351 :Horsepower 153 :Weight_in_lbs 4154 :Acceleration 13 :Year "1/1/1971" :Origin "USA"} +{:Name "plymouth fury iii" :Miles_per_Gallon 14 :Cylinders 8 :Displacement 318 :Horsepower 150 :Weight_in_lbs 4096 :Acceleration 13 :Year "1/1/1971" :Origin "USA"} +{:Name "dodge monaco (sw)" :Miles_per_Gallon 12 :Cylinders 8 :Displacement 383 :Horsepower 180 :Weight_in_lbs 4955 :Acceleration 11 :Year "1/1/1971" :Origin "USA"} +{:Name "ford country squire (sw)" :Miles_per_Gallon 13 :Cylinders 8 :Displacement 400 :Horsepower 170 :Weight_in_lbs 4746 :Acceleration 12 :Year "1/1/1971" :Origin "USA"} +{:Name "pontiac safari (sw)" :Miles_per_Gallon 13 :Cylinders 8 :Displacement 400 :Horsepower 175 :Weight_in_lbs 5140 :Acceleration 12 :Year "1/1/1971" :Origin "USA"} +{:Name "amc hornet sportabout (sw)" :Miles_per_Gallon 18 :Cylinders 6 :Displacement 258 :Horsepower 110 :Weight_in_lbs 2962 :Acceleration 13 :Year "1/1/1971" :Origin "USA"} +{:Name "chevrolet vega (sw)" :Miles_per_Gallon 22 :Cylinders 4 :Displacement 140 :Horsepower 72 :Weight_in_lbs 2408 :Acceleration 19 :Year "1/1/1971" :Origin "USA"} +{:Name "pontiac firebird" :Miles_per_Gallon 19 :Cylinders 6 :Displacement 250 :Horsepower 100 :Weight_in_lbs 3282 :Acceleration 15 :Year "1/1/1971" :Origin "USA"} +{:Name "ford mustang" :Miles_per_Gallon 18 :Cylinders 6 :Displacement 250 :Horsepower 88 :Weight_in_lbs 3139 :Acceleration 14 :Year "1/1/1971" :Origin "USA"} +{:Name "mercury capri 2000" :Miles_per_Gallon 23 :Cylinders 4 :Displacement 122 :Horsepower 86 :Weight_in_lbs 2220 :Acceleration 14 :Year "1/1/1971" :Origin "USA"} +{:Name "opel 1900" :Miles_per_Gallon 28 :Cylinders 4 :Displacement 116 :Horsepower 90 :Weight_in_lbs 2123 :Acceleration 14 :Year "1/1/1971" :Origin "Europe"} +{:Name "peugeot 304" :Miles_per_Gallon 30 :Cylinders 4 :Displacement 79 :Horsepower 70 :Weight_in_lbs 2074 :Acceleration 19 :Year "1/1/1971" :Origin "Europe"} +{:Name "fiat 124b" :Miles_per_Gallon 30 :Cylinders 4 :Displacement 88 :Horsepower 76 :Weight_in_lbs 2065 :Acceleration 14 :Year "1/1/1971" :Origin "Europe"} +{:Name "toyota corolla 1200" :Miles_per_Gallon 31 :Cylinders 4 :Displacement 71 :Horsepower 65 :Weight_in_lbs 1773 :Acceleration 19 :Year "1/1/1971" :Origin "Japan"} +{:Name "datsun 1200" :Miles_per_Gallon 35 :Cylinders 4 :Displacement 72 :Horsepower 69 :Weight_in_lbs 1613 :Acceleration 18 :Year "1/1/1971" :Origin "Japan"} +{:Name "volkswagen model 111" :Miles_per_Gallon 27 :Cylinders 4 :Displacement 97 :Horsepower 60 :Weight_in_lbs 1834 :Acceleration 19 :Year "1/1/1971" :Origin "Europe"} +{:Name "plymouth cricket" :Miles_per_Gallon 26 :Cylinders 4 :Displacement 91 :Horsepower 70 :Weight_in_lbs 1955 :Acceleration 20 :Year "1/1/1971" :Origin "USA"} +{:Name "toyota corona hardtop" :Miles_per_Gallon 24 :Cylinders 4 :Displacement 113 :Horsepower 95 :Weight_in_lbs 2278 :Acceleration 15 :Year "1/1/1972" :Origin "Japan"} +{:Name "dodge colt hardtop" :Miles_per_Gallon 25 :Cylinders 4 :Displacement 97 :Horsepower 80 :Weight_in_lbs 2126 :Acceleration 17 :Year "1/1/1972" :Origin "USA"} +{:Name "volkswagen type 3" :Miles_per_Gallon 23 :Cylinders 4 :Displacement 97 :Horsepower 54 :Weight_in_lbs 2254 :Acceleration 23 :Year "1/1/1972" :Origin "Europe"} +{:Name "chevrolet vega" :Miles_per_Gallon 20 :Cylinders 4 :Displacement 140 :Horsepower 90 :Weight_in_lbs 2408 :Acceleration 19 :Year "1/1/1972" :Origin "USA"} +{:Name "ford pinto runabout" :Miles_per_Gallon 21 :Cylinders 4 :Displacement 122 :Horsepower 86 :Weight_in_lbs 2226 :Acceleration 16 :Year "1/1/1972" :Origin "USA"} +{:Name "chevrolet impala" :Miles_per_Gallon 13 :Cylinders 8 :Displacement 350 :Horsepower 165 :Weight_in_lbs 4274 :Acceleration 12 :Year "1/1/1972" :Origin "USA"} +{:Name "pontiac catalina" :Miles_per_Gallon 14 :Cylinders 8 :Displacement 400 :Horsepower 175 :Weight_in_lbs 4385 :Acceleration 12 :Year "1/1/1972" :Origin "USA"} +{:Name "plymouth fury iii" :Miles_per_Gallon 15 :Cylinders 8 :Displacement 318 :Horsepower 150 :Weight_in_lbs 4135 :Acceleration 13 :Year "1/1/1972" :Origin "USA"} +{:Name "ford galaxie 500" :Miles_per_Gallon 14 :Cylinders 8 :Displacement 351 :Horsepower 153 :Weight_in_lbs 4129 :Acceleration 13 :Year "1/1/1972" :Origin "USA"} +{:Name "amc ambassador sst" :Miles_per_Gallon 17 :Cylinders 8 :Displacement 304 :Horsepower 150 :Weight_in_lbs 3672 :Acceleration 11 :Year "1/1/1972" :Origin "USA"} +{:Name "mercury marquis" :Miles_per_Gallon 11 :Cylinders 8 :Displacement 429 :Horsepower 208 :Weight_in_lbs 4633 :Acceleration 11 :Year "1/1/1972" :Origin "USA"} +{:Name "buick lesabre custom" :Miles_per_Gallon 13 :Cylinders 8 :Displacement 350 :Horsepower 155 :Weight_in_lbs 4502 :Acceleration 13 :Year "1/1/1972" :Origin "USA"} +{:Name "oldsmobile delta 88 royale" :Miles_per_Gallon 12 :Cylinders 8 :Displacement 350 :Horsepower 160 :Weight_in_lbs 4456 :Acceleration 13 :Year "1/1/1972" :Origin "USA"} +{:Name "chrysler newport royal" :Miles_per_Gallon 13 :Cylinders 8 :Displacement 400 :Horsepower 190 :Weight_in_lbs 4422 :Acceleration 12 :Year "1/1/1972" :Origin "USA"} +{:Name "mazda rx2 coupe" :Miles_per_Gallon 19 :Cylinders 3 :Displacement 70 :Horsepower 97 :Weight_in_lbs 2330 :Acceleration 13 :Year "1/1/1972" :Origin "Japan"} +{:Name "amc matador (sw)" :Miles_per_Gallon 15 :Cylinders 8 :Displacement 304 :Horsepower 150 :Weight_in_lbs 3892 :Acceleration 12 :Year "1/1/1972" :Origin "USA"} +{:Name "chevrolet chevelle concours (sw)" :Miles_per_Gallon 13 :Cylinders 8 :Displacement 307 :Horsepower 130 :Weight_in_lbs 4098 :Acceleration 14 :Year "1/1/1972" :Origin "USA"} +{:Name "ford gran torino (sw)" :Miles_per_Gallon 13 :Cylinders 8 :Displacement 302 :Horsepower 140 :Weight_in_lbs 4294 :Acceleration 16 :Year "1/1/1972" :Origin "USA"} +{:Name "plymouth satellite custom (sw)" :Miles_per_Gallon 14 :Cylinders 8 :Displacement 318 :Horsepower 150 :Weight_in_lbs 4077 :Acceleration 14 :Year "1/1/1972" :Origin "USA"} +{:Name "volvo 145e (sw)" :Miles_per_Gallon 18 :Cylinders 4 :Displacement 121 :Horsepower 112 :Weight_in_lbs 2933 :Acceleration 14 :Year "1/1/1972" :Origin "Europe"} +{:Name "volkswagen 411 (sw)" :Miles_per_Gallon 22 :Cylinders 4 :Displacement 121 :Horsepower 76 :Weight_in_lbs 2511 :Acceleration 18 :Year "1/1/1972" :Origin "Europe"} +{:Name "peugeot 504 (sw)" :Miles_per_Gallon 21 :Cylinders 4 :Displacement 120 :Horsepower 87 :Weight_in_lbs 2979 :Acceleration 19 :Year "1/1/1972" :Origin "Europe"} +{:Name "renault 12 (sw)" :Miles_per_Gallon 26 :Cylinders 4 :Displacement 96 :Horsepower 69 :Weight_in_lbs 2189 :Acceleration 18 :Year "1/1/1972" :Origin "Europe"} +{:Name "ford pinto (sw)" :Miles_per_Gallon 22 :Cylinders 4 :Displacement 122 :Horsepower 86 :Weight_in_lbs 2395 :Acceleration 16 :Year "1/1/1972" :Origin "USA"} +{:Name "datsun 510 (sw)" :Miles_per_Gallon 28 :Cylinders 4 :Displacement 97 :Horsepower 92 :Weight_in_lbs 2288 :Acceleration 17 :Year "1/1/1972" :Origin "Japan"} +{:Name "toyouta corona mark ii (sw)" :Miles_per_Gallon 23 :Cylinders 4 :Displacement 120 :Horsepower 97 :Weight_in_lbs 2506 :Acceleration 14 :Year "1/1/1972" :Origin "Japan"} +{:Name "dodge colt (sw)" :Miles_per_Gallon 28 :Cylinders 4 :Displacement 98 :Horsepower 80 :Weight_in_lbs 2164 :Acceleration 15 :Year "1/1/1972" :Origin "USA"} +{:Name "toyota corolla 1600 (sw)" :Miles_per_Gallon 27 :Cylinders 4 :Displacement 97 :Horsepower 88 :Weight_in_lbs 2100 :Acceleration 16 :Year "1/1/1972" :Origin "Japan"} +{:Name "buick century 350" :Miles_per_Gallon 13 :Cylinders 8 :Displacement 350 :Horsepower 175 :Weight_in_lbs 4100 :Acceleration 13 :Year "1/1/1973" :Origin "USA"} +{:Name "amc matador" :Miles_per_Gallon 14 :Cylinders 8 :Displacement 304 :Horsepower 150 :Weight_in_lbs 3672 :Acceleration 11 :Year "1/1/1973" :Origin "USA"} +{:Name "chevrolet malibu" :Miles_per_Gallon 13 :Cylinders 8 :Displacement 350 :Horsepower 145 :Weight_in_lbs 3988 :Acceleration 13 :Year "1/1/1973" :Origin "USA"} +{:Name "ford gran torino" :Miles_per_Gallon 14 :Cylinders 8 :Displacement 302 :Horsepower 137 :Weight_in_lbs 4042 :Acceleration 14 :Year "1/1/1973" :Origin "USA"} +{:Name "dodge coronet custom" :Miles_per_Gallon 15 :Cylinders 8 :Displacement 318 :Horsepower 150 :Weight_in_lbs 3777 :Acceleration 12 :Year "1/1/1973" :Origin "USA"} +{:Name "mercury marquis brougham" :Miles_per_Gallon 12 :Cylinders 8 :Displacement 429 :Horsepower 198 :Weight_in_lbs 4952 :Acceleration 11 :Year "1/1/1973" :Origin "USA"} +{:Name "chevrolet caprice classic" :Miles_per_Gallon 13 :Cylinders 8 :Displacement 400 :Horsepower 150 :Weight_in_lbs 4464 :Acceleration 12 :Year "1/1/1973" :Origin "USA"} +{:Name "ford ltd" :Miles_per_Gallon 13 :Cylinders 8 :Displacement 351 :Horsepower 158 :Weight_in_lbs 4363 :Acceleration 13 :Year "1/1/1973" :Origin "USA"} +{:Name "plymouth fury gran sedan" :Miles_per_Gallon 14 :Cylinders 8 :Displacement 318 :Horsepower 150 :Weight_in_lbs 4237 :Acceleration 14 :Year "1/1/1973" :Origin "USA"} +{:Name "chrysler new yorker brougham" :Miles_per_Gallon 13 :Cylinders 8 :Displacement 440 :Horsepower 215 :Weight_in_lbs 4735 :Acceleration 11 :Year "1/1/1973" :Origin "USA"} +{:Name "buick electra 225 custom" :Miles_per_Gallon 12 :Cylinders 8 :Displacement 455 :Horsepower 225 :Weight_in_lbs 4951 :Acceleration 11 :Year "1/1/1973" :Origin "USA"} +{:Name "amc ambassador brougham" :Miles_per_Gallon 13 :Cylinders 8 :Displacement 360 :Horsepower 175 :Weight_in_lbs 3821 :Acceleration 11 :Year "1/1/1973" :Origin "USA"} +{:Name "plymouth valiant" :Miles_per_Gallon 18 :Cylinders 6 :Displacement 225 :Horsepower 105 :Weight_in_lbs 3121 :Acceleration 16 :Year "1/1/1973" :Origin "USA"} +{:Name "chevrolet nova custom" :Miles_per_Gallon 16 :Cylinders 6 :Displacement 250 :Horsepower 100 :Weight_in_lbs 3278 :Acceleration 18 :Year "1/1/1973" :Origin "USA"} +{:Name "amc hornet" :Miles_per_Gallon 18 :Cylinders 6 :Displacement 232 :Horsepower 100 :Weight_in_lbs 2945 :Acceleration 16 :Year "1/1/1973" :Origin "USA"} +{:Name "ford maverick" :Miles_per_Gallon 18 :Cylinders 6 :Displacement 250 :Horsepower 88 :Weight_in_lbs 3021 :Acceleration 16 :Year "1/1/1973" :Origin "USA"} +{:Name "plymouth duster" :Miles_per_Gallon 23 :Cylinders 6 :Displacement 198 :Horsepower 95 :Weight_in_lbs 2904 :Acceleration 16 :Year "1/1/1973" :Origin "USA"} +{:Name "volkswagen super beetle" :Miles_per_Gallon 26 :Cylinders 4 :Displacement 97 :Horsepower 46 :Weight_in_lbs 1950 :Acceleration 21 :Year "1/1/1973" :Origin "Europe"} +{:Name "chevrolet impala" :Miles_per_Gallon 11 :Cylinders 8 :Displacement 400 :Horsepower 150 :Weight_in_lbs 4997 :Acceleration 14 :Year "1/1/1973" :Origin "USA"} +{:Name "ford country" :Miles_per_Gallon 12 :Cylinders 8 :Displacement 400 :Horsepower 167 :Weight_in_lbs 4906 :Acceleration 12 :Year "1/1/1973" :Origin "USA"} +{:Name "plymouth custom suburb" :Miles_per_Gallon 13 :Cylinders 8 :Displacement 360 :Horsepower 170 :Weight_in_lbs 4654 :Acceleration 13 :Year "1/1/1973" :Origin "USA"} +{:Name "oldsmobile vista cruiser" :Miles_per_Gallon 12 :Cylinders 8 :Displacement 350 :Horsepower 180 :Weight_in_lbs 4499 :Acceleration 12 :Year "1/1/1973" :Origin "USA"} +{:Name "amc gremlin" :Miles_per_Gallon 18 :Cylinders 6 :Displacement 232 :Horsepower 100 :Weight_in_lbs 2789 :Acceleration 15 :Year "1/1/1973" :Origin "USA"} +{:Name "toyota carina" :Miles_per_Gallon 20 :Cylinders 4 :Displacement 97 :Horsepower 88 :Weight_in_lbs 2279 :Acceleration 19 :Year "1/1/1973" :Origin "Japan"} +{:Name "chevrolet vega" :Miles_per_Gallon 21 :Cylinders 4 :Displacement 140 :Horsepower 72 :Weight_in_lbs 2401 :Acceleration 19 :Year "1/1/1973" :Origin "USA"} +{:Name "datsun 610" :Miles_per_Gallon 22 :Cylinders 4 :Displacement 108 :Horsepower 94 :Weight_in_lbs 2379 :Acceleration 16 :Year "1/1/1973" :Origin "Japan"} +{:Name "maxda rx3" :Miles_per_Gallon 18 :Cylinders 3 :Displacement 70 :Horsepower 90 :Weight_in_lbs 2124 :Acceleration 13 :Year "1/1/1973" :Origin "Japan"} +{:Name "ford pinto" :Miles_per_Gallon 19 :Cylinders 4 :Displacement 122 :Horsepower 85 :Weight_in_lbs 2310 :Acceleration 18 :Year "1/1/1973" :Origin "USA"} +{:Name "mercury capri v6" :Miles_per_Gallon 21 :Cylinders 6 :Displacement 155 :Horsepower 107 :Weight_in_lbs 2472 :Acceleration 14 :Year "1/1/1973" :Origin "USA"} +{:Name "fiat 124 sport coupe" :Miles_per_Gallon 26 :Cylinders 4 :Displacement 98 :Horsepower 90 :Weight_in_lbs 2265 :Acceleration 15 :Year "1/1/1973" :Origin "Europe"} +{:Name "chevrolet monte carlo s" :Miles_per_Gallon 15 :Cylinders 8 :Displacement 350 :Horsepower 145 :Weight_in_lbs 4082 :Acceleration 13 :Year "1/1/1973" :Origin "USA"} +{:Name "pontiac grand prix" :Miles_per_Gallon 16 :Cylinders 8 :Displacement 400 :Horsepower 230 :Weight_in_lbs 4278 :Acceleration 9 :Year "1/1/1973" :Origin "USA"} +{:Name "fiat 128" :Miles_per_Gallon 29 :Cylinders 4 :Displacement 68 :Horsepower 49 :Weight_in_lbs 1867 :Acceleration 19 :Year "1/1/1973" :Origin "Europe"} +{:Name "opel manta" :Miles_per_Gallon 24 :Cylinders 4 :Displacement 116 :Horsepower 75 :Weight_in_lbs 2158 :Acceleration 15 :Year "1/1/1973" :Origin "Europe"} +{:Name "audi 100ls" :Miles_per_Gallon 20 :Cylinders 4 :Displacement 114 :Horsepower 91 :Weight_in_lbs 2582 :Acceleration 14 :Year "1/1/1973" :Origin "Europe"} +{:Name "volvo 144ea" :Miles_per_Gallon 19 :Cylinders 4 :Displacement 121 :Horsepower 112 :Weight_in_lbs 2868 :Acceleration 15 :Year "1/1/1973" :Origin "Europe"} +{:Name "dodge dart custom" :Miles_per_Gallon 15 :Cylinders 8 :Displacement 318 :Horsepower 150 :Weight_in_lbs 3399 :Acceleration 11 :Year "1/1/1973" :Origin "USA"} +{:Name "saab 99le" :Miles_per_Gallon 24 :Cylinders 4 :Displacement 121 :Horsepower 110 :Weight_in_lbs 2660 :Acceleration 14 :Year "1/1/1973" :Origin "Europe"} +{:Name "toyota mark ii" :Miles_per_Gallon 20 :Cylinders 6 :Displacement 156 :Horsepower 122 :Weight_in_lbs 2807 :Acceleration 13 :Year "1/1/1973" :Origin "Japan"} +{:Name "oldsmobile omega" :Miles_per_Gallon 11 :Cylinders 8 :Displacement 350 :Horsepower 180 :Weight_in_lbs 3664 :Acceleration 11 :Year "1/1/1973" :Origin "USA"} +{:Name "plymouth duster" :Miles_per_Gallon 20 :Cylinders 6 :Displacement 198 :Horsepower 95 :Weight_in_lbs 3102 :Acceleration 16 :Year "1/1/1974" :Origin "USA"} +{:Name "ford maverick" :Miles_per_Gallon 21 :Cylinders 6 :Displacement 200 :Horsepower nil :Weight_in_lbs 2875 :Acceleration 17 :Year "1/1/1974" :Origin "USA"} +{:Name "amc hornet" :Miles_per_Gallon 19 :Cylinders 6 :Displacement 232 :Horsepower 100 :Weight_in_lbs 2901 :Acceleration 16 :Year "1/1/1974" :Origin "USA"} +{:Name "chevrolet nova" :Miles_per_Gallon 15 :Cylinders 6 :Displacement 250 :Horsepower 100 :Weight_in_lbs 3336 :Acceleration 17 :Year "1/1/1974" :Origin "USA"} +{:Name "datsun b210" :Miles_per_Gallon 31 :Cylinders 4 :Displacement 79 :Horsepower 67 :Weight_in_lbs 1950 :Acceleration 19 :Year "1/1/1974" :Origin "Japan"} +{:Name "ford pinto" :Miles_per_Gallon 26 :Cylinders 4 :Displacement 122 :Horsepower 80 :Weight_in_lbs 2451 :Acceleration 16 :Year "1/1/1974" :Origin "USA"} +{:Name "toyota corolla 1200" :Miles_per_Gallon 32 :Cylinders 4 :Displacement 71 :Horsepower 65 :Weight_in_lbs 1836 :Acceleration 21 :Year "1/1/1974" :Origin "Japan"} +{:Name "chevrolet vega" :Miles_per_Gallon 25 :Cylinders 4 :Displacement 140 :Horsepower 75 :Weight_in_lbs 2542 :Acceleration 17 :Year "1/1/1974" :Origin "USA"} +{:Name "chevrolet chevelle malibu classic" :Miles_per_Gallon 16 :Cylinders 6 :Displacement 250 :Horsepower 100 :Weight_in_lbs 3781 :Acceleration 17 :Year "1/1/1974" :Origin "USA"} +{:Name "amc matador" :Miles_per_Gallon 16 :Cylinders 6 :Displacement 258 :Horsepower 110 :Weight_in_lbs 3632 :Acceleration 18 :Year "1/1/1974" :Origin "USA"} +{:Name "plymouth satellite sebring" :Miles_per_Gallon 18 :Cylinders 6 :Displacement 225 :Horsepower 105 :Weight_in_lbs 3613 :Acceleration 16 :Year "1/1/1974" :Origin "USA"} +{:Name "ford gran torino" :Miles_per_Gallon 16 :Cylinders 8 :Displacement 302 :Horsepower 140 :Weight_in_lbs 4141 :Acceleration 14 :Year "1/1/1974" :Origin "USA"} +{:Name "buick century luxus (sw)" :Miles_per_Gallon 13 :Cylinders 8 :Displacement 350 :Horsepower 150 :Weight_in_lbs 4699 :Acceleration 14 :Year "1/1/1974" :Origin "USA"} +{:Name "dodge coronet custom (sw)" :Miles_per_Gallon 14 :Cylinders 8 :Displacement 318 :Horsepower 150 :Weight_in_lbs 4457 :Acceleration 13 :Year "1/1/1974" :Origin "USA"} +{:Name "ford gran torino (sw)" :Miles_per_Gallon 14 :Cylinders 8 :Displacement 302 :Horsepower 140 :Weight_in_lbs 4638 :Acceleration 16 :Year "1/1/1974" :Origin "USA"} +{:Name "amc matador (sw)" :Miles_per_Gallon 14 :Cylinders 8 :Displacement 304 :Horsepower 150 :Weight_in_lbs 4257 :Acceleration 15 :Year "1/1/1974" :Origin "USA"} +{:Name "audi fox" :Miles_per_Gallon 29 :Cylinders 4 :Displacement 98 :Horsepower 83 :Weight_in_lbs 2219 :Acceleration 16 :Year "1/1/1974" :Origin "Europe"} +{:Name "volkswagen dasher" :Miles_per_Gallon 26 :Cylinders 4 :Displacement 79 :Horsepower 67 :Weight_in_lbs 1963 :Acceleration 15 :Year "1/1/1974" :Origin "Europe"} +{:Name "opel manta" :Miles_per_Gallon 26 :Cylinders 4 :Displacement 97 :Horsepower 78 :Weight_in_lbs 2300 :Acceleration 14 :Year "1/1/1974" :Origin "Europe"} +{:Name "toyota corona" :Miles_per_Gallon 31 :Cylinders 4 :Displacement 76 :Horsepower 52 :Weight_in_lbs 1649 :Acceleration 16 :Year "1/1/1974" :Origin "Japan"} +{:Name "datsun 710" :Miles_per_Gallon 32 :Cylinders 4 :Displacement 83 :Horsepower 61 :Weight_in_lbs 2003 :Acceleration 19 :Year "1/1/1974" :Origin "Japan"} +{:Name "dodge colt" :Miles_per_Gallon 28 :Cylinders 4 :Displacement 90 :Horsepower 75 :Weight_in_lbs 2125 :Acceleration 14 :Year "1/1/1974" :Origin "USA"} +{:Name "fiat 128" :Miles_per_Gallon 24 :Cylinders 4 :Displacement 90 :Horsepower 75 :Weight_in_lbs 2108 :Acceleration 15 :Year "1/1/1974" :Origin "Europe"} +{:Name "fiat 124 tc" :Miles_per_Gallon 26 :Cylinders 4 :Displacement 116 :Horsepower 75 :Weight_in_lbs 2246 :Acceleration 14 :Year "1/1/1974" :Origin "Europe"} +{:Name "honda civic" :Miles_per_Gallon 24 :Cylinders 4 :Displacement 120 :Horsepower 97 :Weight_in_lbs 2489 :Acceleration 15 :Year "1/1/1974" :Origin "Japan"} +{:Name "subaru" :Miles_per_Gallon 26 :Cylinders 4 :Displacement 108 :Horsepower 93 :Weight_in_lbs 2391 :Acceleration 15 :Year "1/1/1974" :Origin "Japan"} +{:Name "fiat x1.9" :Miles_per_Gallon 31 :Cylinders 4 :Displacement 79 :Horsepower 67 :Weight_in_lbs 2000 :Acceleration 16 :Year "1/1/1974" :Origin "Europe"} +{:Name "plymouth valiant custom" :Miles_per_Gallon 19 :Cylinders 6 :Displacement 225 :Horsepower 95 :Weight_in_lbs 3264 :Acceleration 16 :Year "1/1/1975" :Origin "USA"} +{:Name "chevrolet nova" :Miles_per_Gallon 18 :Cylinders 6 :Displacement 250 :Horsepower 105 :Weight_in_lbs 3459 :Acceleration 16 :Year "1/1/1975" :Origin "USA"} +{:Name "mercury monarch" :Miles_per_Gallon 15 :Cylinders 6 :Displacement 250 :Horsepower 72 :Weight_in_lbs 3432 :Acceleration 21 :Year "1/1/1975" :Origin "USA"} +{:Name "ford maverick" :Miles_per_Gallon 15 :Cylinders 6 :Displacement 250 :Horsepower 72 :Weight_in_lbs 3158 :Acceleration 19 :Year "1/1/1975" :Origin "USA"} +{:Name "pontiac catalina" :Miles_per_Gallon 16 :Cylinders 8 :Displacement 400 :Horsepower 170 :Weight_in_lbs 4668 :Acceleration 11 :Year "1/1/1975" :Origin "USA"} +{:Name "chevrolet bel air" :Miles_per_Gallon 15 :Cylinders 8 :Displacement 350 :Horsepower 145 :Weight_in_lbs 4440 :Acceleration 14 :Year "1/1/1975" :Origin "USA"} +{:Name "plymouth grand fury" :Miles_per_Gallon 16 :Cylinders 8 :Displacement 318 :Horsepower 150 :Weight_in_lbs 4498 :Acceleration 14 :Year "1/1/1975" :Origin "USA"} +{:Name "ford ltd" :Miles_per_Gallon 14 :Cylinders 8 :Displacement 351 :Horsepower 148 :Weight_in_lbs 4657 :Acceleration 13 :Year "1/1/1975" :Origin "USA"} +{:Name "buick century" :Miles_per_Gallon 17 :Cylinders 6 :Displacement 231 :Horsepower 110 :Weight_in_lbs 3907 :Acceleration 21 :Year "1/1/1975" :Origin "USA"} +{:Name "chevroelt chevelle malibu" :Miles_per_Gallon 16 :Cylinders 6 :Displacement 250 :Horsepower 105 :Weight_in_lbs 3897 :Acceleration 18 :Year "1/1/1975" :Origin "USA"} +{:Name "amc matador" :Miles_per_Gallon 15 :Cylinders 6 :Displacement 258 :Horsepower 110 :Weight_in_lbs 3730 :Acceleration 19 :Year "1/1/1975" :Origin "USA"} +{:Name "plymouth fury" :Miles_per_Gallon 18 :Cylinders 6 :Displacement 225 :Horsepower 95 :Weight_in_lbs 3785 :Acceleration 19 :Year "1/1/1975" :Origin "USA"} +{:Name "buick skyhawk" :Miles_per_Gallon 21 :Cylinders 6 :Displacement 231 :Horsepower 110 :Weight_in_lbs 3039 :Acceleration 15 :Year "1/1/1975" :Origin "USA"} +{:Name "chevrolet monza 2+2" :Miles_per_Gallon 20 :Cylinders 8 :Displacement 262 :Horsepower 110 :Weight_in_lbs 3221 :Acceleration 13 :Year "1/1/1975" :Origin "USA"} +{:Name "ford mustang ii" :Miles_per_Gallon 13 :Cylinders 8 :Displacement 302 :Horsepower 129 :Weight_in_lbs 3169 :Acceleration 12 :Year "1/1/1975" :Origin "USA"} +{:Name "toyota corolla" :Miles_per_Gallon 29 :Cylinders 4 :Displacement 97 :Horsepower 75 :Weight_in_lbs 2171 :Acceleration 16 :Year "1/1/1975" :Origin "Japan"} +{:Name "ford pinto" :Miles_per_Gallon 23 :Cylinders 4 :Displacement 140 :Horsepower 83 :Weight_in_lbs 2639 :Acceleration 17 :Year "1/1/1975" :Origin "USA"} +{:Name "amc gremlin" :Miles_per_Gallon 20 :Cylinders 6 :Displacement 232 :Horsepower 100 :Weight_in_lbs 2914 :Acceleration 16 :Year "1/1/1975" :Origin "USA"} +{:Name "pontiac astro" :Miles_per_Gallon 23 :Cylinders 4 :Displacement 140 :Horsepower 78 :Weight_in_lbs 2592 :Acceleration 18 :Year "1/1/1975" :Origin "USA"} +{:Name "toyota corona" :Miles_per_Gallon 24 :Cylinders 4 :Displacement 134 :Horsepower 96 :Weight_in_lbs 2702 :Acceleration 13 :Year "1/1/1975" :Origin "Japan"} +{:Name "volkswagen dasher" :Miles_per_Gallon 25 :Cylinders 4 :Displacement 90 :Horsepower 71 :Weight_in_lbs 2223 :Acceleration 16 :Year "1/1/1975" :Origin "Europe"} +{:Name "datsun 710" :Miles_per_Gallon 24 :Cylinders 4 :Displacement 119 :Horsepower 97 :Weight_in_lbs 2545 :Acceleration 17 :Year "1/1/1975" :Origin "Japan"} +{:Name "ford pinto" :Miles_per_Gallon 18 :Cylinders 6 :Displacement 171 :Horsepower 97 :Weight_in_lbs 2984 :Acceleration 14 :Year "1/1/1975" :Origin "USA"} +{:Name "volkswagen rabbit" :Miles_per_Gallon 29 :Cylinders 4 :Displacement 90 :Horsepower 70 :Weight_in_lbs 1937 :Acceleration 14 :Year "1/1/1975" :Origin "Europe"} +{:Name "amc pacer" :Miles_per_Gallon 19 :Cylinders 6 :Displacement 232 :Horsepower 90 :Weight_in_lbs 3211 :Acceleration 17 :Year "1/1/1975" :Origin "USA"} +{:Name "audi 100ls" :Miles_per_Gallon 23 :Cylinders 4 :Displacement 115 :Horsepower 95 :Weight_in_lbs 2694 :Acceleration 15 :Year "1/1/1975" :Origin "Europe"} +{:Name "peugeot 504" :Miles_per_Gallon 23 :Cylinders 4 :Displacement 120 :Horsepower 88 :Weight_in_lbs 2957 :Acceleration 17 :Year "1/1/1975" :Origin "Europe"} +{:Name "volvo 244dl" :Miles_per_Gallon 22 :Cylinders 4 :Displacement 121 :Horsepower 98 :Weight_in_lbs 2945 :Acceleration 14 :Year "1/1/1975" :Origin "Europe"} +{:Name "saab 99le" :Miles_per_Gallon 25 :Cylinders 4 :Displacement 121 :Horsepower 115 :Weight_in_lbs 2671 :Acceleration 13 :Year "1/1/1975" :Origin "Europe"} +{:Name "honda civic cvcc" :Miles_per_Gallon 33 :Cylinders 4 :Displacement 91 :Horsepower 53 :Weight_in_lbs 1795 :Acceleration 17 :Year "1/1/1975" :Origin "Japan"} +{:Name "fiat 131" :Miles_per_Gallon 28 :Cylinders 4 :Displacement 107 :Horsepower 86 :Weight_in_lbs 2464 :Acceleration 15 :Year "1/1/1976" :Origin "Europe"} +{:Name "opel 1900" :Miles_per_Gallon 25 :Cylinders 4 :Displacement 116 :Horsepower 81 :Weight_in_lbs 2220 :Acceleration 16 :Year "1/1/1976" :Origin "Europe"} +{:Name "capri ii" :Miles_per_Gallon 25 :Cylinders 4 :Displacement 140 :Horsepower 92 :Weight_in_lbs 2572 :Acceleration 14 :Year "1/1/1976" :Origin "USA"} +{:Name "dodge colt" :Miles_per_Gallon 26 :Cylinders 4 :Displacement 98 :Horsepower 79 :Weight_in_lbs 2255 :Acceleration 17 :Year "1/1/1976" :Origin "USA"} +{:Name "renault 12tl" :Miles_per_Gallon 27 :Cylinders 4 :Displacement 101 :Horsepower 83 :Weight_in_lbs 2202 :Acceleration 15 :Year "1/1/1976" :Origin "Europe"} +{:Name "chevrolet chevelle malibu classic" :Miles_per_Gallon 17 :Cylinders 8 :Displacement 305 :Horsepower 140 :Weight_in_lbs 4215 :Acceleration 13 :Year "1/1/1976" :Origin "USA"} +{:Name "dodge coronet brougham" :Miles_per_Gallon 16 :Cylinders 8 :Displacement 318 :Horsepower 150 :Weight_in_lbs 4190 :Acceleration 13 :Year "1/1/1976" :Origin "USA"} +{:Name "amc matador" :Miles_per_Gallon 15 :Cylinders 8 :Displacement 304 :Horsepower 120 :Weight_in_lbs 3962 :Acceleration 13 :Year "1/1/1976" :Origin "USA"} +{:Name "ford gran torino" :Miles_per_Gallon 14 :Cylinders 8 :Displacement 351 :Horsepower 152 :Weight_in_lbs 4215 :Acceleration 12 :Year "1/1/1976" :Origin "USA"} +{:Name "plymouth valiant" :Miles_per_Gallon 22 :Cylinders 6 :Displacement 225 :Horsepower 100 :Weight_in_lbs 3233 :Acceleration 15 :Year "1/1/1976" :Origin "USA"} +{:Name "chevrolet nova" :Miles_per_Gallon 22 :Cylinders 6 :Displacement 250 :Horsepower 105 :Weight_in_lbs 3353 :Acceleration 14 :Year "1/1/1976" :Origin "USA"} +{:Name "ford maverick" :Miles_per_Gallon 24 :Cylinders 6 :Displacement 200 :Horsepower 81 :Weight_in_lbs 3012 :Acceleration 17 :Year "1/1/1976" :Origin "USA"} +{:Name "amc hornet" :Miles_per_Gallon 22 :Cylinders 6 :Displacement 232 :Horsepower 90 :Weight_in_lbs 3085 :Acceleration 17 :Year "1/1/1976" :Origin "USA"} +{:Name "chevrolet chevette" :Miles_per_Gallon 29 :Cylinders 4 :Displacement 85 :Horsepower 52 :Weight_in_lbs 2035 :Acceleration 22 :Year "1/1/1976" :Origin "USA"} +{:Name "chevrolet woody" :Miles_per_Gallon 24 :Cylinders 4 :Displacement 98 :Horsepower 60 :Weight_in_lbs 2164 :Acceleration 22 :Year "1/1/1976" :Origin "USA"} +{:Name "vw rabbit" :Miles_per_Gallon 29 :Cylinders 4 :Displacement 90 :Horsepower 70 :Weight_in_lbs 1937 :Acceleration 14 :Year "1/1/1976" :Origin "Europe"} +{:Name "honda civic" :Miles_per_Gallon 33 :Cylinders 4 :Displacement 91 :Horsepower 53 :Weight_in_lbs 1795 :Acceleration 17 :Year "1/1/1976" :Origin "Japan"} +{:Name "dodge aspen se" :Miles_per_Gallon 20 :Cylinders 6 :Displacement 225 :Horsepower 100 :Weight_in_lbs 3651 :Acceleration 17 :Year "1/1/1976" :Origin "USA"} +{:Name "ford granada ghia" :Miles_per_Gallon 18 :Cylinders 6 :Displacement 250 :Horsepower 78 :Weight_in_lbs 3574 :Acceleration 21 :Year "1/1/1976" :Origin "USA"} +{:Name "pontiac ventura sj" :Miles_per_Gallon 18 :Cylinders 6 :Displacement 250 :Horsepower 110 :Weight_in_lbs 3645 :Acceleration 16 :Year "1/1/1976" :Origin "USA"} +{:Name "amc pacer d/l" :Miles_per_Gallon 17 :Cylinders 6 :Displacement 258 :Horsepower 95 :Weight_in_lbs 3193 :Acceleration 17 :Year "1/1/1976" :Origin "USA"} +{:Name "volkswagen rabbit" :Miles_per_Gallon 29 :Cylinders 4 :Displacement 97 :Horsepower 71 :Weight_in_lbs 1825 :Acceleration 12 :Year "1/1/1976" :Origin "Europe"} +{:Name "datsun b-210" :Miles_per_Gallon 32 :Cylinders 4 :Displacement 85 :Horsepower 70 :Weight_in_lbs 1990 :Acceleration 17 :Year "1/1/1976" :Origin "Japan"} +{:Name "toyota corolla" :Miles_per_Gallon 28 :Cylinders 4 :Displacement 97 :Horsepower 75 :Weight_in_lbs 2155 :Acceleration 16 :Year "1/1/1976" :Origin "Japan"} +{:Name "ford pinto" :Miles_per_Gallon 26 :Cylinders 4 :Displacement 140 :Horsepower 72 :Weight_in_lbs 2565 :Acceleration 13 :Year "1/1/1976" :Origin "USA"} +{:Name "volvo 245" :Miles_per_Gallon 20 :Cylinders 4 :Displacement 130 :Horsepower 102 :Weight_in_lbs 3150 :Acceleration 15 :Year "1/1/1976" :Origin "Europe"} +{:Name "plymouth volare premier v8" :Miles_per_Gallon 13 :Cylinders 8 :Displacement 318 :Horsepower 150 :Weight_in_lbs 3940 :Acceleration 13 :Year "1/1/1976" :Origin "USA"} +{:Name "peugeot 504" :Miles_per_Gallon 19 :Cylinders 4 :Displacement 120 :Horsepower 88 :Weight_in_lbs 3270 :Acceleration 21 :Year "1/1/1976" :Origin "Europe"} +{:Name "toyota mark ii" :Miles_per_Gallon 19 :Cylinders 6 :Displacement 156 :Horsepower 108 :Weight_in_lbs 2930 :Acceleration 15 :Year "1/1/1976" :Origin "Japan"} +{:Name "mercedes-benz 280s" :Miles_per_Gallon 16 :Cylinders 6 :Displacement 168 :Horsepower 120 :Weight_in_lbs 3820 :Acceleration 16 :Year "1/1/1976" :Origin "Europe"} +{:Name "cadillac seville" :Miles_per_Gallon 16 :Cylinders 8 :Displacement 350 :Horsepower 180 :Weight_in_lbs 4380 :Acceleration 12 :Year "1/1/1976" :Origin "USA"} +{:Name "chevy c10" :Miles_per_Gallon 13 :Cylinders 8 :Displacement 350 :Horsepower 145 :Weight_in_lbs 4055 :Acceleration 12 :Year "1/1/1976" :Origin "USA"} +{:Name "ford f108" :Miles_per_Gallon 13 :Cylinders 8 :Displacement 302 :Horsepower 130 :Weight_in_lbs 3870 :Acceleration 15 :Year "1/1/1976" :Origin "USA"} +{:Name "dodge d100" :Miles_per_Gallon 13 :Cylinders 8 :Displacement 318 :Horsepower 150 :Weight_in_lbs 3755 :Acceleration 14 :Year "1/1/1976" :Origin "USA"} +{:Name "honda Accelerationord cvcc" :Miles_per_Gallon 31 :Cylinders 4 :Displacement 98 :Horsepower 68 :Weight_in_lbs 2045 :Acceleration 18 :Year "1/1/1977" :Origin "Japan"} +{:Name "buick opel isuzu deluxe" :Miles_per_Gallon 30 :Cylinders 4 :Displacement 111 :Horsepower 80 :Weight_in_lbs 2155 :Acceleration 14 :Year "1/1/1977" :Origin "USA"} +{:Name "renault 5 gtl" :Miles_per_Gallon 36 :Cylinders 4 :Displacement 79 :Horsepower 58 :Weight_in_lbs 1825 :Acceleration 18 :Year "1/1/1977" :Origin "Europe"} +{:Name "plymouth arrow gs" :Miles_per_Gallon 25 :Cylinders 4 :Displacement 122 :Horsepower 96 :Weight_in_lbs 2300 :Acceleration 15 :Year "1/1/1977" :Origin "USA"} +{:Name "datsun f-10 hatchback" :Miles_per_Gallon 33 :Cylinders 4 :Displacement 85 :Horsepower 70 :Weight_in_lbs 1945 :Acceleration 16 :Year "1/1/1977" :Origin "Japan"} +{:Name "chevrolet caprice classic" :Miles_per_Gallon 17 :Cylinders 8 :Displacement 305 :Horsepower 145 :Weight_in_lbs 3880 :Acceleration 12 :Year "1/1/1977" :Origin "USA"} +{:Name "oldsmobile cutlass supreme" :Miles_per_Gallon 17 :Cylinders 8 :Displacement 260 :Horsepower 110 :Weight_in_lbs 4060 :Acceleration 19 :Year "1/1/1977" :Origin "USA"} +{:Name "dodge monaco brougham" :Miles_per_Gallon 15 :Cylinders 8 :Displacement 318 :Horsepower 145 :Weight_in_lbs 4140 :Acceleration 13 :Year "1/1/1977" :Origin "USA"} +{:Name "mercury cougar brougham" :Miles_per_Gallon 15 :Cylinders 8 :Displacement 302 :Horsepower 130 :Weight_in_lbs 4295 :Acceleration 14 :Year "1/1/1977" :Origin "USA"} +{:Name "chevrolet concours" :Miles_per_Gallon 17 :Cylinders 6 :Displacement 250 :Horsepower 110 :Weight_in_lbs 3520 :Acceleration 16 :Year "1/1/1977" :Origin "USA"} +{:Name "buick skylark" :Miles_per_Gallon 20 :Cylinders 6 :Displacement 231 :Horsepower 105 :Weight_in_lbs 3425 :Acceleration 16 :Year "1/1/1977" :Origin "USA"} +{:Name "plymouth volare custom" :Miles_per_Gallon 19 :Cylinders 6 :Displacement 225 :Horsepower 100 :Weight_in_lbs 3630 :Acceleration 17 :Year "1/1/1977" :Origin "USA"} +{:Name "ford granada" :Miles_per_Gallon 18 :Cylinders 6 :Displacement 250 :Horsepower 98 :Weight_in_lbs 3525 :Acceleration 19 :Year "1/1/1977" :Origin "USA"} +{:Name "pontiac grand prix lj" :Miles_per_Gallon 16 :Cylinders 8 :Displacement 400 :Horsepower 180 :Weight_in_lbs 4220 :Acceleration 11 :Year "1/1/1977" :Origin "USA"} +{:Name "chevrolet monte carlo landau" :Miles_per_Gallon 15 :Cylinders 8 :Displacement 350 :Horsepower 170 :Weight_in_lbs 4165 :Acceleration 11 :Year "1/1/1977" :Origin "USA"} +{:Name "chrysler cordoba" :Miles_per_Gallon 15 :Cylinders 8 :Displacement 400 :Horsepower 190 :Weight_in_lbs 4325 :Acceleration 12 :Year "1/1/1977" :Origin "USA"} +{:Name "ford thunderbird" :Miles_per_Gallon 16 :Cylinders 8 :Displacement 351 :Horsepower 149 :Weight_in_lbs 4335 :Acceleration 14 :Year "1/1/1977" :Origin "USA"} +{:Name "volkswagen rabbit custom" :Miles_per_Gallon 29 :Cylinders 4 :Displacement 97 :Horsepower 78 :Weight_in_lbs 1940 :Acceleration 14 :Year "1/1/1977" :Origin "Europe"} +{:Name "pontiac sunbird coupe" :Miles_per_Gallon 24 :Cylinders 4 :Displacement 151 :Horsepower 88 :Weight_in_lbs 2740 :Acceleration 16 :Year "1/1/1977" :Origin "USA"} +{:Name "toyota corolla liftback" :Miles_per_Gallon 26 :Cylinders 4 :Displacement 97 :Horsepower 75 :Weight_in_lbs 2265 :Acceleration 18 :Year "1/1/1977" :Origin "Japan"} +{:Name "ford mustang ii 2+2" :Miles_per_Gallon 25 :Cylinders 4 :Displacement 140 :Horsepower 89 :Weight_in_lbs 2755 :Acceleration 15 :Year "1/1/1977" :Origin "USA"} +{:Name "chevrolet chevette" :Miles_per_Gallon 30 :Cylinders 4 :Displacement 98 :Horsepower 63 :Weight_in_lbs 2051 :Acceleration 17 :Year "1/1/1977" :Origin "USA"} +{:Name "dodge colt m/m" :Miles_per_Gallon 33 :Cylinders 4 :Displacement 98 :Horsepower 83 :Weight_in_lbs 2075 :Acceleration 15 :Year "1/1/1977" :Origin "USA"} +{:Name "subaru dl" :Miles_per_Gallon 30 :Cylinders 4 :Displacement 97 :Horsepower 67 :Weight_in_lbs 1985 :Acceleration 16 :Year "1/1/1977" :Origin "Japan"} +{:Name "volkswagen dasher" :Miles_per_Gallon 30 :Cylinders 4 :Displacement 97 :Horsepower 78 :Weight_in_lbs 2190 :Acceleration 14 :Year "1/1/1977" :Origin "Europe"} +{:Name "datsun 810" :Miles_per_Gallon 22 :Cylinders 6 :Displacement 146 :Horsepower 97 :Weight_in_lbs 2815 :Acceleration 14 :Year "1/1/1977" :Origin "Japan"} +{:Name "bmw 320i" :Miles_per_Gallon 21 :Cylinders 4 :Displacement 121 :Horsepower 110 :Weight_in_lbs 2600 :Acceleration 12 :Year "1/1/1977" :Origin "Europe"} +{:Name "mazda rx-4" :Miles_per_Gallon 21 :Cylinders 3 :Displacement 80 :Horsepower 110 :Weight_in_lbs 2720 :Acceleration 13 :Year "1/1/1977" :Origin "Japan"} +{:Name "volkswagen rabbit custom diesel" :Miles_per_Gallon 43 :Cylinders 4 :Displacement 90 :Horsepower 48 :Weight_in_lbs 1985 :Acceleration 21 :Year "1/1/1978" :Origin "Europe"} +{:Name "ford fiesta" :Miles_per_Gallon 36 :Cylinders 4 :Displacement 98 :Horsepower 66 :Weight_in_lbs 1800 :Acceleration 14 :Year "1/1/1978" :Origin "USA"} +{:Name "mazda glc deluxe" :Miles_per_Gallon 32 :Cylinders 4 :Displacement 78 :Horsepower 52 :Weight_in_lbs 1985 :Acceleration 19 :Year "1/1/1978" :Origin "Japan"} +{:Name "datsun b210 gx" :Miles_per_Gallon 39 :Cylinders 4 :Displacement 85 :Horsepower 70 :Weight_in_lbs 2070 :Acceleration 18 :Year "1/1/1978" :Origin "Japan"} +{:Name "honda civic cvcc" :Miles_per_Gallon 36 :Cylinders 4 :Displacement 91 :Horsepower 60 :Weight_in_lbs 1800 :Acceleration 16 :Year "1/1/1978" :Origin "Japan"} +{:Name "oldsmobile cutlass salon brougham" :Miles_per_Gallon 19 :Cylinders 8 :Displacement 260 :Horsepower 110 :Weight_in_lbs 3365 :Acceleration 15 :Year "1/1/1978" :Origin "USA"} +{:Name "dodge diplomat" :Miles_per_Gallon 19 :Cylinders 8 :Displacement 318 :Horsepower 140 :Weight_in_lbs 3735 :Acceleration 13 :Year "1/1/1978" :Origin "USA"} +{:Name "mercury monarch ghia" :Miles_per_Gallon 20 :Cylinders 8 :Displacement 302 :Horsepower 139 :Weight_in_lbs 3570 :Acceleration 12 :Year "1/1/1978" :Origin "USA"} +{:Name "pontiac phoenix lj" :Miles_per_Gallon 19 :Cylinders 6 :Displacement 231 :Horsepower 105 :Weight_in_lbs 3535 :Acceleration 19 :Year "1/1/1978" :Origin "USA"} +{:Name "chevrolet malibu" :Miles_per_Gallon 20 :Cylinders 6 :Displacement 200 :Horsepower 95 :Weight_in_lbs 3155 :Acceleration 18 :Year "1/1/1978" :Origin "USA"} +{:Name "ford fairmont (auto)" :Miles_per_Gallon 20 :Cylinders 6 :Displacement 200 :Horsepower 85 :Weight_in_lbs 2965 :Acceleration 15 :Year "1/1/1978" :Origin "USA"} +{:Name "ford fairmont (man)" :Miles_per_Gallon 25 :Cylinders 4 :Displacement 140 :Horsepower 88 :Weight_in_lbs 2720 :Acceleration 15 :Year "1/1/1978" :Origin "USA"} +{:Name "plymouth volare" :Miles_per_Gallon 20 :Cylinders 6 :Displacement 225 :Horsepower 100 :Weight_in_lbs 3430 :Acceleration 17 :Year "1/1/1978" :Origin "USA"} +{:Name "amc concord" :Miles_per_Gallon 19 :Cylinders 6 :Displacement 232 :Horsepower 90 :Weight_in_lbs 3210 :Acceleration 17 :Year "1/1/1978" :Origin "USA"} +{:Name "buick century special" :Miles_per_Gallon 20 :Cylinders 6 :Displacement 231 :Horsepower 105 :Weight_in_lbs 3380 :Acceleration 15 :Year "1/1/1978" :Origin "USA"} +{:Name "mercury zephyr" :Miles_per_Gallon 20 :Cylinders 6 :Displacement 200 :Horsepower 85 :Weight_in_lbs 3070 :Acceleration 16 :Year "1/1/1978" :Origin "USA"} +{:Name "dodge aspen" :Miles_per_Gallon 18 :Cylinders 6 :Displacement 225 :Horsepower 110 :Weight_in_lbs 3620 :Acceleration 18 :Year "1/1/1978" :Origin "USA"} +{:Name "amc concord d/l" :Miles_per_Gallon 18 :Cylinders 6 :Displacement 258 :Horsepower 120 :Weight_in_lbs 3410 :Acceleration 15 :Year "1/1/1978" :Origin "USA"} +{:Name "chevrolet monte carlo landau" :Miles_per_Gallon 19 :Cylinders 8 :Displacement 305 :Horsepower 145 :Weight_in_lbs 3425 :Acceleration 13 :Year "1/1/1978" :Origin "USA"} +{:Name "buick regal sport coupe (turbo)" :Miles_per_Gallon 17 :Cylinders 6 :Displacement 231 :Horsepower 165 :Weight_in_lbs 3445 :Acceleration 13 :Year "1/1/1978" :Origin "USA"} +{:Name "ford futura" :Miles_per_Gallon 18 :Cylinders 8 :Displacement 302 :Horsepower 139 :Weight_in_lbs 3205 :Acceleration 11 :Year "1/1/1978" :Origin "USA"} +{:Name "dodge magnum xe" :Miles_per_Gallon 17 :Cylinders 8 :Displacement 318 :Horsepower 140 :Weight_in_lbs 4080 :Acceleration 13 :Year "1/1/1978" :Origin "USA"} +{:Name "chevrolet chevette" :Miles_per_Gallon 30 :Cylinders 4 :Displacement 98 :Horsepower 68 :Weight_in_lbs 2155 :Acceleration 16 :Year "1/1/1978" :Origin "USA"} +{:Name "toyota corona" :Miles_per_Gallon 27 :Cylinders 4 :Displacement 134 :Horsepower 95 :Weight_in_lbs 2560 :Acceleration 14 :Year "1/1/1978" :Origin "Japan"} +{:Name "datsun 510" :Miles_per_Gallon 27 :Cylinders 4 :Displacement 119 :Horsepower 97 :Weight_in_lbs 2300 :Acceleration 14 :Year "1/1/1978" :Origin "Japan"} +{:Name "dodge omni" :Miles_per_Gallon 30 :Cylinders 4 :Displacement 105 :Horsepower 75 :Weight_in_lbs 2230 :Acceleration 14 :Year "1/1/1978" :Origin "USA"} +{:Name "toyota celica gt liftback" :Miles_per_Gallon 21 :Cylinders 4 :Displacement 134 :Horsepower 95 :Weight_in_lbs 2515 :Acceleration 14 :Year "1/1/1978" :Origin "Japan"} +{:Name "plymouth sapporo" :Miles_per_Gallon 23 :Cylinders 4 :Displacement 156 :Horsepower 105 :Weight_in_lbs 2745 :Acceleration 16 :Year "1/1/1978" :Origin "USA"} +{:Name "oldsmobile starfire sx" :Miles_per_Gallon 23 :Cylinders 4 :Displacement 151 :Horsepower 85 :Weight_in_lbs 2855 :Acceleration 17 :Year "1/1/1978" :Origin "USA"} +{:Name "datsun 200-sx" :Miles_per_Gallon 23 :Cylinders 4 :Displacement 119 :Horsepower 97 :Weight_in_lbs 2405 :Acceleration 14 :Year "1/1/1978" :Origin "Japan"} +{:Name "audi 5000" :Miles_per_Gallon 20 :Cylinders 5 :Displacement 131 :Horsepower 103 :Weight_in_lbs 2830 :Acceleration 15 :Year "1/1/1978" :Origin "Europe"} +{:Name "volvo 264gl" :Miles_per_Gallon 17 :Cylinders 6 :Displacement 163 :Horsepower 125 :Weight_in_lbs 3140 :Acceleration 13 :Year "1/1/1978" :Origin "Europe"} +{:Name "saab 99gle" :Miles_per_Gallon 21 :Cylinders 4 :Displacement 121 :Horsepower 115 :Weight_in_lbs 2795 :Acceleration 15 :Year "1/1/1978" :Origin "Europe"} +{:Name "peugeot 604sl" :Miles_per_Gallon 16 :Cylinders 6 :Displacement 163 :Horsepower 133 :Weight_in_lbs 3410 :Acceleration 15 :Year "1/1/1978" :Origin "Europe"} +{:Name "volkswagen scirocco" :Miles_per_Gallon 31 :Cylinders 4 :Displacement 89 :Horsepower 71 :Weight_in_lbs 1990 :Acceleration 14 :Year "1/1/1978" :Origin "Europe"} +{:Name "honda Accelerationord lx" :Miles_per_Gallon 29 :Cylinders 4 :Displacement 98 :Horsepower 68 :Weight_in_lbs 2135 :Acceleration 16 :Year "1/1/1978" :Origin "Japan"} +{:Name "pontiac lemans v6" :Miles_per_Gallon 21 :Cylinders 6 :Displacement 231 :Horsepower 115 :Weight_in_lbs 3245 :Acceleration 15 :Year "1/1/1979" :Origin "USA"} +{:Name "mercury zephyr 6" :Miles_per_Gallon 19 :Cylinders 6 :Displacement 200 :Horsepower 85 :Weight_in_lbs 2990 :Acceleration 18 :Year "1/1/1979" :Origin "USA"} +{:Name "ford fairmont 4" :Miles_per_Gallon 22 :Cylinders 4 :Displacement 140 :Horsepower 88 :Weight_in_lbs 2890 :Acceleration 17 :Year "1/1/1979" :Origin "USA"} +{:Name "amc concord dl 6" :Miles_per_Gallon 20 :Cylinders 6 :Displacement 232 :Horsepower 90 :Weight_in_lbs 3265 :Acceleration 18 :Year "1/1/1979" :Origin "USA"} +{:Name "dodge aspen 6" :Miles_per_Gallon 20 :Cylinders 6 :Displacement 225 :Horsepower 110 :Weight_in_lbs 3360 :Acceleration 16 :Year "1/1/1979" :Origin "USA"} +{:Name "chevrolet caprice classic" :Miles_per_Gallon 17 :Cylinders 8 :Displacement 305 :Horsepower 130 :Weight_in_lbs 3840 :Acceleration 15 :Year "1/1/1979" :Origin "USA"} +{:Name "ford ltd landau" :Miles_per_Gallon 17 :Cylinders 8 :Displacement 302 :Horsepower 129 :Weight_in_lbs 3725 :Acceleration 13 :Year "1/1/1979" :Origin "USA"} +{:Name "mercury grand marquis" :Miles_per_Gallon 16 :Cylinders 8 :Displacement 351 :Horsepower 138 :Weight_in_lbs 3955 :Acceleration 13 :Year "1/1/1979" :Origin "USA"} +{:Name "dodge st. regis" :Miles_per_Gallon 18 :Cylinders 8 :Displacement 318 :Horsepower 135 :Weight_in_lbs 3830 :Acceleration 15 :Year "1/1/1979" :Origin "USA"} +{:Name "buick estate wagon (sw)" :Miles_per_Gallon 16 :Cylinders 8 :Displacement 350 :Horsepower 155 :Weight_in_lbs 4360 :Acceleration 14 :Year "1/1/1979" :Origin "USA"} +{:Name "ford country squire (sw)" :Miles_per_Gallon 15 :Cylinders 8 :Displacement 351 :Horsepower 142 :Weight_in_lbs 4054 :Acceleration 14 :Year "1/1/1979" :Origin "USA"} +{:Name "chevrolet malibu classic (sw)" :Miles_per_Gallon 19 :Cylinders 8 :Displacement 267 :Horsepower 125 :Weight_in_lbs 3605 :Acceleration 15 :Year "1/1/1979" :Origin "USA"} +{:Name "chrysler lebaron town @ country (sw)" :Miles_per_Gallon 18 :Cylinders 8 :Displacement 360 :Horsepower 150 :Weight_in_lbs 3940 :Acceleration 13 :Year "1/1/1979" :Origin "USA"} +{:Name "vw rabbit custom" :Miles_per_Gallon 31 :Cylinders 4 :Displacement 89 :Horsepower 71 :Weight_in_lbs 1925 :Acceleration 14 :Year "1/1/1979" :Origin "Europe"} +{:Name "maxda glc deluxe" :Miles_per_Gallon 34 :Cylinders 4 :Displacement 86 :Horsepower 65 :Weight_in_lbs 1975 :Acceleration 15 :Year "1/1/1979" :Origin "Japan"} +{:Name "dodge colt hatchback custom" :Miles_per_Gallon 35 :Cylinders 4 :Displacement 98 :Horsepower 80 :Weight_in_lbs 1915 :Acceleration 14 :Year "1/1/1979" :Origin "USA"} +{:Name "amc spirit dl" :Miles_per_Gallon 27 :Cylinders 4 :Displacement 121 :Horsepower 80 :Weight_in_lbs 2670 :Acceleration 15 :Year "1/1/1979" :Origin "USA"} +{:Name "mercedes benz 300d" :Miles_per_Gallon 25 :Cylinders 5 :Displacement 183 :Horsepower 77 :Weight_in_lbs 3530 :Acceleration 20 :Year "1/1/1979" :Origin "Europe"} +{:Name "cadillac eldorado" :Miles_per_Gallon 23 :Cylinders 8 :Displacement 350 :Horsepower 125 :Weight_in_lbs 3900 :Acceleration 17 :Year "1/1/1979" :Origin "USA"} +{:Name "peugeot 504" :Miles_per_Gallon 27 :Cylinders 4 :Displacement 141 :Horsepower 71 :Weight_in_lbs 3190 :Acceleration 24 :Year "1/1/1979" :Origin "Europe"} +{:Name "oldsmobile cutlass salon brougham" :Miles_per_Gallon 23 :Cylinders 8 :Displacement 260 :Horsepower 90 :Weight_in_lbs 3420 :Acceleration 22 :Year "1/1/1979" :Origin "USA"} +{:Name "plymouth horizon" :Miles_per_Gallon 34 :Cylinders 4 :Displacement 105 :Horsepower 70 :Weight_in_lbs 2200 :Acceleration 13 :Year "1/1/1979" :Origin "USA"} +{:Name "plymouth horizon tc3" :Miles_per_Gallon 34 :Cylinders 4 :Displacement 105 :Horsepower 70 :Weight_in_lbs 2150 :Acceleration 14 :Year "1/1/1979" :Origin "USA"} +{:Name "datsun 210" :Miles_per_Gallon 31 :Cylinders 4 :Displacement 85 :Horsepower 65 :Weight_in_lbs 2020 :Acceleration 19 :Year "1/1/1979" :Origin "Japan"} +{:Name "fiat strada custom" :Miles_per_Gallon 37 :Cylinders 4 :Displacement 91 :Horsepower 69 :Weight_in_lbs 2130 :Acceleration 14 :Year "1/1/1979" :Origin "Europe"} +{:Name "buick skylark limited" :Miles_per_Gallon 28 :Cylinders 4 :Displacement 151 :Horsepower 90 :Weight_in_lbs 2670 :Acceleration 16 :Year "1/1/1979" :Origin "USA"} +{:Name "chevrolet citation" :Miles_per_Gallon 28 :Cylinders 6 :Displacement 173 :Horsepower 115 :Weight_in_lbs 2595 :Acceleration 11 :Year "1/1/1979" :Origin "USA"} +{:Name "oldsmobile omega brougham" :Miles_per_Gallon 26 :Cylinders 6 :Displacement 173 :Horsepower 115 :Weight_in_lbs 2700 :Acceleration 12 :Year "1/1/1979" :Origin "USA"} +{:Name "pontiac phoenix" :Miles_per_Gallon 33 :Cylinders 4 :Displacement 151 :Horsepower 90 :Weight_in_lbs 2556 :Acceleration 13 :Year "1/1/1979" :Origin "USA"} +{:Name "vw rabbit" :Miles_per_Gallon 41 :Cylinders 4 :Displacement 98 :Horsepower 76 :Weight_in_lbs 2144 :Acceleration 14 :Year "1/1/1980" :Origin "Europe"} +{:Name "toyota corolla tercel" :Miles_per_Gallon 38 :Cylinders 4 :Displacement 89 :Horsepower 60 :Weight_in_lbs 1968 :Acceleration 18 :Year "1/1/1980" :Origin "Japan"} +{:Name "chevrolet chevette" :Miles_per_Gallon 32 :Cylinders 4 :Displacement 98 :Horsepower 70 :Weight_in_lbs 2120 :Acceleration 15 :Year "1/1/1980" :Origin "USA"} +{:Name "datsun 310" :Miles_per_Gallon 37 :Cylinders 4 :Displacement 86 :Horsepower 65 :Weight_in_lbs 2019 :Acceleration 16 :Year "1/1/1980" :Origin "Japan"} +{:Name "chevrolet citation" :Miles_per_Gallon 28 :Cylinders 4 :Displacement 151 :Horsepower 90 :Weight_in_lbs 2678 :Acceleration 16 :Year "1/1/1980" :Origin "USA"} +{:Name "ford fairmont" :Miles_per_Gallon 26 :Cylinders 4 :Displacement 140 :Horsepower 88 :Weight_in_lbs 2870 :Acceleration 18 :Year "1/1/1980" :Origin "USA"} +{:Name "amc concord" :Miles_per_Gallon 24 :Cylinders 4 :Displacement 151 :Horsepower 90 :Weight_in_lbs 3003 :Acceleration 20 :Year "1/1/1980" :Origin "USA"} +{:Name "dodge aspen" :Miles_per_Gallon 19 :Cylinders 6 :Displacement 225 :Horsepower 90 :Weight_in_lbs 3381 :Acceleration 18 :Year "1/1/1980" :Origin "USA"} +{:Name "audi 4000" :Miles_per_Gallon 34 :Cylinders 4 :Displacement 97 :Horsepower 78 :Weight_in_lbs 2188 :Acceleration 15 :Year "1/1/1980" :Origin "Europe"} +{:Name "toyota corona liftback" :Miles_per_Gallon 29 :Cylinders 4 :Displacement 134 :Horsepower 90 :Weight_in_lbs 2711 :Acceleration 15 :Year "1/1/1980" :Origin "Japan"} +{:Name "mazda 626" :Miles_per_Gallon 31 :Cylinders 4 :Displacement 120 :Horsepower 75 :Weight_in_lbs 2542 :Acceleration 17 :Year "1/1/1980" :Origin "Japan"} +{:Name "datsun 510 hatchback" :Miles_per_Gallon 37 :Cylinders 4 :Displacement 119 :Horsepower 92 :Weight_in_lbs 2434 :Acceleration 15 :Year "1/1/1980" :Origin "Japan"} +{:Name "toyota corolla" :Miles_per_Gallon 32 :Cylinders 4 :Displacement 108 :Horsepower 75 :Weight_in_lbs 2265 :Acceleration 15 :Year "1/1/1980" :Origin "Japan"} +{:Name "mazda glc" :Miles_per_Gallon 46 :Cylinders 4 :Displacement 86 :Horsepower 65 :Weight_in_lbs 2110 :Acceleration 17 :Year "1/1/1980" :Origin "Japan"} +{:Name "dodge colt" :Miles_per_Gallon 27 :Cylinders 4 :Displacement 156 :Horsepower 105 :Weight_in_lbs 2800 :Acceleration 14 :Year "1/1/1980" :Origin "USA"} +{:Name "datsun 210" :Miles_per_Gallon 40 :Cylinders 4 :Displacement 85 :Horsepower 65 :Weight_in_lbs 2110 :Acceleration 19 :Year "1/1/1980" :Origin "Japan"} +{:Name "vw rabbit c (diesel)" :Miles_per_Gallon 44 :Cylinders 4 :Displacement 90 :Horsepower 48 :Weight_in_lbs 2085 :Acceleration 21 :Year "1/1/1980" :Origin "Europe"} +{:Name "vw dasher (diesel)" :Miles_per_Gallon 43 :Cylinders 4 :Displacement 90 :Horsepower 48 :Weight_in_lbs 2335 :Acceleration 23 :Year "1/1/1980" :Origin "Europe"} +{:Name "audi 5000s (diesel)" :Miles_per_Gallon 36 :Cylinders 5 :Displacement 121 :Horsepower 67 :Weight_in_lbs 2950 :Acceleration 19 :Year "1/1/1980" :Origin "Europe"} +{:Name "mercedes-benz 240d" :Miles_per_Gallon 30 :Cylinders 4 :Displacement 146 :Horsepower 67 :Weight_in_lbs 3250 :Acceleration 21 :Year "1/1/1980" :Origin "Europe"} +{:Name "honda civic 1500 gl" :Miles_per_Gallon 44 :Cylinders 4 :Displacement 91 :Horsepower 67 :Weight_in_lbs 1850 :Acceleration 13 :Year "1/1/1980" :Origin "Japan"} +{:Name "renault lecar deluxe" :Miles_per_Gallon 40 :Cylinders 4 :Displacement 85 :Horsepower nil :Weight_in_lbs 1835 :Acceleration 17 :Year "1/1/1980" :Origin "Europe"} +{:Name "subaru dl" :Miles_per_Gallon 33 :Cylinders 4 :Displacement 97 :Horsepower 67 :Weight_in_lbs 2145 :Acceleration 18 :Year "1/1/1980" :Origin "Japan"} +{:Name "vokswagen rabbit" :Miles_per_Gallon 29 :Cylinders 4 :Displacement 89 :Horsepower 62 :Weight_in_lbs 1845 :Acceleration 15 :Year "1/1/1980" :Origin "Europe"} +{:Name "datsun 280-zx" :Miles_per_Gallon 32 :Cylinders 6 :Displacement 168 :Horsepower 132 :Weight_in_lbs 2910 :Acceleration 11 :Year "1/1/1980" :Origin "Japan"} +{:Name "mazda rx-7 gs" :Miles_per_Gallon 23 :Cylinders 3 :Displacement 70 :Horsepower 100 :Weight_in_lbs 2420 :Acceleration 12 :Year "1/1/1980" :Origin "Japan"} +{:Name "triumph tr7 coupe" :Miles_per_Gallon 35 :Cylinders 4 :Displacement 122 :Horsepower 88 :Weight_in_lbs 2500 :Acceleration 15 :Year "1/1/1980" :Origin "Europe"} +{:Name "ford mustang cobra" :Miles_per_Gallon 23 :Cylinders 4 :Displacement 140 :Horsepower nil :Weight_in_lbs 2905 :Acceleration 14 :Year "1/1/1980" :Origin "USA"} +{:Name "honda Accelerationord" :Miles_per_Gallon 32 :Cylinders 4 :Displacement 107 :Horsepower 72 :Weight_in_lbs 2290 :Acceleration 17 :Year "1/1/1980" :Origin "Japan"} +{:Name "plymouth reliant" :Miles_per_Gallon 27 :Cylinders 4 :Displacement 135 :Horsepower 84 :Weight_in_lbs 2490 :Acceleration 15 :Year "1/1/1982" :Origin "USA"} +{:Name "buick skylark" :Miles_per_Gallon 26 :Cylinders 4 :Displacement 151 :Horsepower 84 :Weight_in_lbs 2635 :Acceleration 16 :Year "1/1/1982" :Origin "USA"} +{:Name "dodge aries wagon (sw)" :Miles_per_Gallon 25 :Cylinders 4 :Displacement 156 :Horsepower 92 :Weight_in_lbs 2620 :Acceleration 14 :Year "1/1/1982" :Origin "USA"} +{:Name "chevrolet citation" :Miles_per_Gallon 23 :Cylinders 6 :Displacement 173 :Horsepower 110 :Weight_in_lbs 2725 :Acceleration 12 :Year "1/1/1982" :Origin "USA"} +{:Name "plymouth reliant" :Miles_per_Gallon 30 :Cylinders 4 :Displacement 135 :Horsepower 84 :Weight_in_lbs 2385 :Acceleration 12 :Year "1/1/1982" :Origin "USA"} +{:Name "toyota starlet" :Miles_per_Gallon 39 :Cylinders 4 :Displacement 79 :Horsepower 58 :Weight_in_lbs 1755 :Acceleration 16 :Year "1/1/1982" :Origin "Japan"} +{:Name "plymouth champ" :Miles_per_Gallon 39 :Cylinders 4 :Displacement 86 :Horsepower 64 :Weight_in_lbs 1875 :Acceleration 16 :Year "1/1/1982" :Origin "USA"} +{:Name "honda civic 1300" :Miles_per_Gallon 35 :Cylinders 4 :Displacement 81 :Horsepower 60 :Weight_in_lbs 1760 :Acceleration 16 :Year "1/1/1982" :Origin "Japan"} +{:Name "subaru" :Miles_per_Gallon 32 :Cylinders 4 :Displacement 97 :Horsepower 67 :Weight_in_lbs 2065 :Acceleration 17 :Year "1/1/1982" :Origin "Japan"} +{:Name "datsun 210" :Miles_per_Gallon 37 :Cylinders 4 :Displacement 85 :Horsepower 65 :Weight_in_lbs 1975 :Acceleration 19 :Year "1/1/1982" :Origin "Japan"} +{:Name "toyota tercel" :Miles_per_Gallon 37 :Cylinders 4 :Displacement 89 :Horsepower 62 :Weight_in_lbs 2050 :Acceleration 17 :Year "1/1/1982" :Origin "Japan"} +{:Name "mazda glc 4" :Miles_per_Gallon 34 :Cylinders 4 :Displacement 91 :Horsepower 68 :Weight_in_lbs 1985 :Acceleration 16 :Year "1/1/1982" :Origin "Japan"} +{:Name "plymouth horizon 4" :Miles_per_Gallon 34 :Cylinders 4 :Displacement 105 :Horsepower 63 :Weight_in_lbs 2215 :Acceleration 14 :Year "1/1/1982" :Origin "USA"} +{:Name "ford escort 4w" :Miles_per_Gallon 34 :Cylinders 4 :Displacement 98 :Horsepower 65 :Weight_in_lbs 2045 :Acceleration 16 :Year "1/1/1982" :Origin "USA"} +{:Name "ford escort 2h" :Miles_per_Gallon 29 :Cylinders 4 :Displacement 98 :Horsepower 65 :Weight_in_lbs 2380 :Acceleration 20 :Year "1/1/1982" :Origin "USA"} +{:Name "volkswagen jetta" :Miles_per_Gallon 33 :Cylinders 4 :Displacement 105 :Horsepower 74 :Weight_in_lbs 2190 :Acceleration 14 :Year "1/1/1982" :Origin "Europe"} +{:Name "renault 18i" :Miles_per_Gallon 34 :Cylinders 4 :Displacement 100 :Horsepower nil :Weight_in_lbs 2320 :Acceleration 15 :Year "1/1/1982" :Origin "Europe"} +{:Name "honda prelude" :Miles_per_Gallon 33 :Cylinders 4 :Displacement 107 :Horsepower 75 :Weight_in_lbs 2210 :Acceleration 14 :Year "1/1/1982" :Origin "Japan"} +{:Name "toyota corolla" :Miles_per_Gallon 32 :Cylinders 4 :Displacement 108 :Horsepower 75 :Weight_in_lbs 2350 :Acceleration 16 :Year "1/1/1982" :Origin "Japan"} +{:Name "datsun 200sx" :Miles_per_Gallon 32 :Cylinders 4 :Displacement 119 :Horsepower 100 :Weight_in_lbs 2615 :Acceleration 14 :Year "1/1/1982" :Origin "Japan"} +{:Name "mazda 626" :Miles_per_Gallon 31 :Cylinders 4 :Displacement 120 :Horsepower 74 :Weight_in_lbs 2635 :Acceleration 18 :Year "1/1/1982" :Origin "Japan"} +{:Name "peugeot 505s turbo diesel" :Miles_per_Gallon 28 :Cylinders 4 :Displacement 141 :Horsepower 80 :Weight_in_lbs 3230 :Acceleration 20 :Year "1/1/1982" :Origin "Europe"} +{:Name "saab 900s" :Miles_per_Gallon nil :Cylinders 4 :Displacement 121 :Horsepower 110 :Weight_in_lbs 2800 :Acceleration 15 :Year "1/1/1982" :Origin "Europe"} +{:Name "volvo diesel" :Miles_per_Gallon 30 :Cylinders 6 :Displacement 145 :Horsepower 76 :Weight_in_lbs 3160 :Acceleration 19 :Year "1/1/1982" :Origin "Europe"} +{:Name "toyota cressida" :Miles_per_Gallon 25 :Cylinders 6 :Displacement 168 :Horsepower 116 :Weight_in_lbs 2900 :Acceleration 12 :Year "1/1/1982" :Origin "Japan"} +{:Name "datsun 810 maxima" :Miles_per_Gallon 24 :Cylinders 6 :Displacement 146 :Horsepower 120 :Weight_in_lbs 2930 :Acceleration 13 :Year "1/1/1982" :Origin "Japan"} +{:Name "buick century" :Miles_per_Gallon 22 :Cylinders 6 :Displacement 231 :Horsepower 110 :Weight_in_lbs 3415 :Acceleration 15 :Year "1/1/1982" :Origin "USA"} +{:Name "oldsmobile cutlass ls" :Miles_per_Gallon 26 :Cylinders 8 :Displacement 350 :Horsepower 105 :Weight_in_lbs 3725 :Acceleration 19 :Year "1/1/1982" :Origin "USA"} +{:Name "ford granada gl" :Miles_per_Gallon 20 :Cylinders 6 :Displacement 200 :Horsepower 88 :Weight_in_lbs 3060 :Acceleration 17 :Year "1/1/1982" :Origin "USA"} +{:Name "chrysler lebaron salon" :Miles_per_Gallon 17 :Cylinders 6 :Displacement 225 :Horsepower 85 :Weight_in_lbs 3465 :Acceleration 16 :Year "1/1/1982" :Origin "USA"} +{:Name "chevrolet cavalier" :Miles_per_Gallon 28 :Cylinders 4 :Displacement 112 :Horsepower 88 :Weight_in_lbs 2605 :Acceleration 19 :Year "1/1/1982" :Origin "USA"} +{:Name "chevrolet cavalier wagon" :Miles_per_Gallon 27 :Cylinders 4 :Displacement 112 :Horsepower 88 :Weight_in_lbs 2640 :Acceleration 18 :Year "1/1/1982" :Origin "USA"} +{:Name "chevrolet cavalier 2-door" :Miles_per_Gallon 34 :Cylinders 4 :Displacement 112 :Horsepower 88 :Weight_in_lbs 2395 :Acceleration 18 :Year "1/1/1982" :Origin "USA"} +{:Name "pontiac j2000 se hatchback" :Miles_per_Gallon 31 :Cylinders 4 :Displacement 112 :Horsepower 85 :Weight_in_lbs 2575 :Acceleration 16 :Year "1/1/1982" :Origin "USA"} +{:Name "dodge aries se" :Miles_per_Gallon 29 :Cylinders 4 :Displacement 135 :Horsepower 84 :Weight_in_lbs 2525 :Acceleration 16 :Year "1/1/1982" :Origin "USA"} +{:Name "pontiac phoenix" :Miles_per_Gallon 27 :Cylinders 4 :Displacement 151 :Horsepower 90 :Weight_in_lbs 2735 :Acceleration 18 :Year "1/1/1982" :Origin "USA"} +{:Name "ford fairmont futura" :Miles_per_Gallon 24 :Cylinders 4 :Displacement 140 :Horsepower 92 :Weight_in_lbs 2865 :Acceleration 16 :Year "1/1/1982" :Origin "USA"} +{:Name "amc concord dl" :Miles_per_Gallon 23 :Cylinders 4 :Displacement 151 :Horsepower nil :Weight_in_lbs 3035 :Acceleration 20 :Year "1/1/1982" :Origin "USA"} +{:Name "volkswagen rabbit l" :Miles_per_Gallon 36 :Cylinders 4 :Displacement 105 :Horsepower 74 :Weight_in_lbs 1980 :Acceleration 15 :Year "1/1/1982" :Origin "Europe"} +{:Name "mazda glc custom l" :Miles_per_Gallon 37 :Cylinders 4 :Displacement 91 :Horsepower 68 :Weight_in_lbs 2025 :Acceleration 18 :Year "1/1/1982" :Origin "Japan"} +{:Name "mazda glc custom" :Miles_per_Gallon 31 :Cylinders 4 :Displacement 91 :Horsepower 68 :Weight_in_lbs 1970 :Acceleration 17 :Year "1/1/1982" :Origin "Japan"} +{:Name "plymouth horizon miser" :Miles_per_Gallon 38 :Cylinders 4 :Displacement 105 :Horsepower 63 :Weight_in_lbs 2125 :Acceleration 14 :Year "1/1/1982" :Origin "USA"} +{:Name "mercury lynx l" :Miles_per_Gallon 36 :Cylinders 4 :Displacement 98 :Horsepower 70 :Weight_in_lbs 2125 :Acceleration 17 :Year "1/1/1982" :Origin "USA"} +{:Name "nissan stanza xe" :Miles_per_Gallon 36 :Cylinders 4 :Displacement 120 :Horsepower 88 :Weight_in_lbs 2160 :Acceleration 14 :Year "1/1/1982" :Origin "Japan"} +{:Name "honda Accelerationord" :Miles_per_Gallon 36 :Cylinders 4 :Displacement 107 :Horsepower 75 :Weight_in_lbs 2205 :Acceleration 14 :Year "1/1/1982" :Origin "Japan"} +{:Name "toyota corolla" :Miles_per_Gallon 34 :Cylinders 4 :Displacement 108 :Horsepower 70 :Weight_in_lbs 2245 :Acceleration 16 :Year "1/1/1982" :Origin "Japan"} +{:Name "honda civic" :Miles_per_Gallon 38 :Cylinders 4 :Displacement 91 :Horsepower 67 :Weight_in_lbs 1965 :Acceleration 15 :Year "1/1/1982" :Origin "Japan"} +{:Name "honda civic (auto)" :Miles_per_Gallon 32 :Cylinders 4 :Displacement 91 :Horsepower 67 :Weight_in_lbs 1965 :Acceleration 15 :Year "1/1/1982" :Origin "Japan"} +{:Name "datsun 310 gx" :Miles_per_Gallon 38 :Cylinders 4 :Displacement 91 :Horsepower 67 :Weight_in_lbs 1995 :Acceleration 16 :Year "1/1/1982" :Origin "Japan"} +{:Name "buick century limited" :Miles_per_Gallon 25 :Cylinders 6 :Displacement 181 :Horsepower 110 :Weight_in_lbs 2945 :Acceleration 16 :Year "1/1/1982" :Origin "USA"} +{:Name "oldsmobile cutlass ciera (diesel)" :Miles_per_Gallon 38 :Cylinders 6 :Displacement 262 :Horsepower 85 :Weight_in_lbs 3015 :Acceleration 17 :Year "1/1/1982" :Origin "USA"} +{:Name "chrysler lebaron medallion" :Miles_per_Gallon 26 :Cylinders 4 :Displacement 156 :Horsepower 92 :Weight_in_lbs 2585 :Acceleration 14 :Year "1/1/1982" :Origin "USA"} +{:Name "ford granada l" :Miles_per_Gallon 22 :Cylinders 6 :Displacement 232 :Horsepower 112 :Weight_in_lbs 2835 :Acceleration 14 :Year "1/1/1982" :Origin "USA"} +{:Name "toyota celica gt" :Miles_per_Gallon 32 :Cylinders 4 :Displacement 144 :Horsepower 96 :Weight_in_lbs 2665 :Acceleration 13 :Year "1/1/1982" :Origin "Japan"} +{:Name "dodge charger 2.2" :Miles_per_Gallon 36 :Cylinders 4 :Displacement 135 :Horsepower 84 :Weight_in_lbs 2370 :Acceleration 13 :Year "1/1/1982" :Origin "USA"} +{:Name "chevrolet camaro" :Miles_per_Gallon 27 :Cylinders 4 :Displacement 151 :Horsepower 90 :Weight_in_lbs 2950 :Acceleration 17 :Year "1/1/1982" :Origin "USA"} +{:Name "ford mustang gl" :Miles_per_Gallon 27 :Cylinders 4 :Displacement 140 :Horsepower 86 :Weight_in_lbs 2790 :Acceleration 15 :Year "1/1/1982" :Origin "USA"} +{:Name "vw pickup" :Miles_per_Gallon 44 :Cylinders 4 :Displacement 97 :Horsepower 52 :Weight_in_lbs 2130 :Acceleration 24 :Year "1/1/1982" :Origin "Europe"} +{:Name "dodge rampage" :Miles_per_Gallon 32 :Cylinders 4 :Displacement 135 :Horsepower 84 :Weight_in_lbs 2295 :Acceleration 11 :Year "1/1/1982" :Origin "USA"} +{:Name "ford ranger" :Miles_per_Gallon 28 :Cylinders 4 :Displacement 120 :Horsepower 79 :Weight_in_lbs 2625 :Acceleration 18 :Year "1/1/1982" :Origin "USA"} +{:Name "chevy s-10" :Miles_per_Gallon 31 :Cylinders 4 :Displacement 119 :Horsepower 82 :Weight_in_lbs 2720 :Acceleration 19 :Year "1/1/1982" :Origin "USA"}] \ No newline at end of file diff --git a/data/edn/nested-user-data.edn b/data/edn/nested-user-data.edn new file mode 100644 index 0000000..37fcd98 --- /dev/null +++ b/data/edn/nested-user-data.edn @@ -0,0 +1,10 @@ +({:user_id 1 + :email "1@domain.com" + :hobbies [{:type "sport" + :name "soccer" + :dates ["May 3rd" "May 4th" "May 5th"]}]} + {:user_id 2 + :email "2@domain.com"} + {:user_id 3 + :email "3@domain.com" + :hobbies []}) diff --git a/package-lock.json b/package-lock.json index c9866ac..9a8f750 100644 --- a/package-lock.json +++ b/package-lock.json @@ -922,7 +922,8 @@ "version": "5.3.1", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", - "dev": true + "dev": true, + "requires": {} }, "adler-32": { "version": "1.2.0", @@ -1905,6 +1906,11 @@ "esutils": "^2.0.2" } }, + "edn-data": { + "version": "1.0.0", + "resolved": "https://nubank-193814090748.d.codeartifact.us-east-1.amazonaws.com/npm/private-npm/edn-data/-/edn-data-1.0.0.tgz", + "integrity": "sha512-APhRwwveKvsK193tw4ZBxCU6HRgBtuZ3sXt1G+czxZImNVOqYUWdQDIs4CpRFWfSQh//mPwgyBB0Qv7aUDmoFA==" + }, "emoji-regex": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", @@ -3746,6 +3752,14 @@ "frac": "~1.1.2" } }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + }, "string-width": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", @@ -3776,14 +3790,6 @@ "es-abstract": "^1.17.5" } }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - }, "strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", diff --git a/package.json b/package.json index fdfed16..228d3e6 100644 --- a/package.json +++ b/package.json @@ -47,6 +47,7 @@ "avro", "parquet", "config", + "edn", "env", "properties", "ini", @@ -91,6 +92,7 @@ "onLanguage:avro", "onLanguage:parquet", "onLanguage:config", + "onLanguage:clojure", "onLanguage:env", "onLanguage:properties", "onLanguage:ini", @@ -292,36 +294,36 @@ "explorer/context": [ { "command": "data.preview", - "when": "resourceFilename =~ /.*\\.(json|jsonl|json5|hjson|ndjson|arrow|arr|avro|parquet|parq|config|env|properties|ini|yaml|yml|md|csv|tsv|txt|tab|dif|ods|xls|xlsb|xlsm|xlsx|xml|html)/", + "when": "resourceFilename =~ /.*\\.(json|jsonl|json5|hjson|ndjson|arrow|arr|avro|parquet|parq|config|edn|env|properties|ini|yaml|yml|md|csv|tsv|txt|tab|dif|ods|xls|xlsb|xlsm|xlsx|xml|html)/", "group": "navigation" }, { "command": "data.preview.on.side", - "when": "resourceFilename =~ /.*\\.(json|jsonl|json5|hjson|ndjson|arrow|arr|avro|parquet|parq|config|env|properties|ini|yaml|yml|md|csv|tsv|txt|tab|dif|ods|xls|xlsb|xlsm|xlsx|xml|html)/", + "when": "resourceFilename =~ /.*\\.(json|jsonl|json5|hjson|ndjson|arrow|arr|avro|parquet|parq|config|edn|env|properties|ini|yaml|yml|md|csv|tsv|txt|tab|dif|ods|xls|xlsb|xlsm|xlsx|xml|html)/", "group": "navigation" } ], "editor/title": [ { "command": "data.preview", - "when": "resourceFilename =~ /.*\\.(json|jsonl|json5|hjson|ndjson|arrow|arr|avro|parquet|parq|config|env|properties|ini|yaml|yml|md|csv|tsv|txt|tab|dif|ods|xls|xlsb|xlsm|xlsx|xml|html)/", + "when": "resourceFilename =~ /.*\\.(json|jsonl|json5|hjson|ndjson|arrow|arr|avro|parquet|parq|config|edn|env|properties|ini|yaml|yml|md|csv|tsv|txt|tab|dif|ods|xls|xlsb|xlsm|xlsx|xml|html)/", "group": "navigation" }, { "command": "data.preview.on.side", - "when": "resourceFilename =~ /.*\\.(json|jsonl|json5|hjson|ndjson|arrow|arr|avro|parquet|parq|config|env|properties|ini|yaml|yml|md|csv|tsv|txt|tab|dif|ods|xls|xlsb|xlsm|xlsx|xml|html)/", + "when": "resourceFilename =~ /.*\\.(json|jsonl|json5|hjson|ndjson|arrow|arr|avro|parquet|parq|config|edn|env|properties|ini|yaml|yml|md|csv|tsv|txt|tab|dif|ods|xls|xlsb|xlsm|xlsx|xml|html)/", "group": "navigation" } ], "editor/title/context": [ { "command": "data.preview", - "when": "resourceFilename =~ /.*\\.(json|jsonl|json5|hjson|ndjson|arrow|arr|avro|parquet|parq|config|env|properties|ini|yaml|yml|md|csv|tsv|txt|tab|dif|ods|xls|xlsb|xlsm|xlsx|xml|html)/", + "when": "resourceFilename =~ /.*\\.(json|jsonl|json5|hjson|ndjson|arrow|arr|avro|parquet|parq|config|edn|env|properties|ini|yaml|yml|md|csv|tsv|txt|tab|dif|ods|xls|xlsb|xlsm|xlsx|xml|html)/", "group": "navigation" }, { "command": "data.preview.on.side", - "when": "resourceFilename =~ /.*\\.(json|jsonl|json5|hjson|ndjson|arrow|arr|avro|parquet|parq|config|env|properties|ini|yaml|yml|md|csv|tsv|txt|tab|dif|ods|xls|xlsb|xlsm|xlsx|xml|html)/", + "when": "resourceFilename =~ /.*\\.(json|jsonl|json5|hjson|ndjson|arrow|arr|avro|parquet|parq|config|edn|env|properties|ini|yaml|yml|md|csv|tsv|txt|tab|dif|ods|xls|xlsb|xlsm|xlsx|xml|html)/", "group": "navigation" } ] @@ -395,12 +397,12 @@ "@types/mocha": "^8.0.3", "@types/node": "^14.11.2", "@types/vscode": "^1.49.0", - "eslint": "^7.10.0", - "@typescript-eslint/parser": "^4.2.0", "@typescript-eslint/eslint-plugin": "^4.2.0", - "typescript": "^4.0.3", + "@typescript-eslint/parser": "^4.2.0", + "eslint": "^7.10.0", "glob": "^7.1.6", "mocha": "^8.1.3", + "typescript": "^4.0.3", "vscode-test": "^1.4.0" }, "dependencies": { @@ -411,11 +413,12 @@ "@finos/perspective-viewer-hypergrid": "^0.4.0", "apache-arrow": "^0.15.1", "avsc": "^5.4.22", + "edn-data": "^1.0.0", "hjson": "^3.2.1", "js-yaml": "^3.14.0", + "json-spread": "0.3.2", "json5": "^2.1.3", "jsonc-parser": "2.3.1", - "json-spread": "0.3.2", "parquets": "^0.10.10", "properties": "^1.2.1", "snappy": "^6.3.5", diff --git a/src/config.ts b/src/config.ts index c53f9dd..b630fb5 100644 --- a/src/config.ts +++ b/src/config.ts @@ -3,13 +3,14 @@ import { LogLevel } from "./logger"; // log level setting for prod. vs. dev run of this ext. export const logLevel: LogLevel = LogLevel.Info; // change to .Debug for ext. dev debug -export const supportedDataFiles: RegExp = /.*\.(json|jsonl|json5|hjson|ndjson|arrow|arr|avro|parquet|parq|config|env|properties|ini|yaml|yml|md|csv|tsv|txt|tab|dif|ods|xls|xlsb|xlsx|xlsm|xml|html)/; +export const supportedDataFiles: RegExp = /.*\.(json|jsonl|json5|hjson|ndjson|arrow|arr|avro|parquet|parq|config|edn|env|properties|ini|yaml|yml|md|csv|tsv|txt|tab|dif|ods|xls|xlsb|xlsx|xlsm|xml|html)/; export const supportedBinaryDataFiles: RegExp = /.*\.(arrow|arr|avro|parquet|parq|dif|ods|xls|xlsb|xlsx|xlsm)/; export const supportedFilesFilters: any = { 'JSON': ['json', 'jsonl', 'json5', 'hjson', 'ndjson'], 'CSV/TSV': ['csv', 'tsv', 'tab', 'txt'], + 'EDN': ['edn'], 'Excel': ['dif', 'ods', 'xls', 'xlsb', 'xlsx', 'xlsm', 'xml', 'html'], 'Arrow': ['arrow'], 'Avro': ['avro'], diff --git a/src/data.manager.ts b/src/data.manager.ts index 73dd848..0c15d90 100644 --- a/src/data.manager.ts +++ b/src/data.manager.ts @@ -6,6 +6,7 @@ import {Logger, LogLevel} from './logger'; // data provider imports import {AvroDataProvider} from './data.providers/avro.data.provider'; import {ArrowDataProvider} from './data.providers/arrow.data.provider'; +import {EDNDataProvider} from './data.providers/edn.data.provider'; import {ExcelDataProvider} from './data.providers/excel.data.provider'; import {HjsonDataProvider} from './data.providers/hjson.data.provider'; import {JsonDataProvider} from './data.providers/json.data.provider'; @@ -138,6 +139,7 @@ export class DataManager implements IDataManager { const dataProviders: Map = new Map(); this.addDataProvider(dataProviders, new AvroDataProvider()); this.addDataProvider(dataProviders, new ArrowDataProvider()); + this.addDataProvider(dataProviders, new EDNDataProvider()); this.addDataProvider(dataProviders, new ExcelDataProvider()); this.addDataProvider(dataProviders, new HjsonDataProvider()); this.addDataProvider(dataProviders, new JsonDataProvider()); diff --git a/src/data.providers/edn.data.provider.ts b/src/data.providers/edn.data.provider.ts new file mode 100644 index 0000000..dd1ff9c --- /dev/null +++ b/src/data.providers/edn.data.provider.ts @@ -0,0 +1,93 @@ +import {window} from 'vscode'; +import * as fs from 'fs'; +import * as config from '../config'; +import * as fileUtils from '../utils/file.utils'; +import * as jsonUtils from '../utils/json.utils'; +import {Logger, LogLevel} from '../logger'; +import {IDataProvider} from '../data.manager'; +import { parseEDNString, toEDNStringFromSimpleObject } from 'edn-data'; +import { ParseOptions } from 'edn-data/dist/parse'; + +const defaultEDNParseOptions: ParseOptions = { + charAs: 'string', + keywordAs: 'string', + listAs: 'array', + mapAs: 'object', + setAs: 'set', +} + +/** + * EDN data provider. + * @see https://github.com/edn-format/edn + */ +export class EDNDataProvider implements IDataProvider { + + // TODO: add mime types later for http data loading + public supportedDataFileTypes: Array = ['.edn']; + private logger: Logger = new Logger('edn.data.provider:', config.logLevel); + + /** + * Creates new EDN data provider for .edn data files. + */ + constructor() { + this.logger.debug('created for:', this.supportedDataFileTypes); + } + + /** + * Gets local or remote data. + * @param dataUrl Local data file path or remote data url. + * @param parseOptions Data parse options. + * @param loadData Load data callback. + */ + public async getData(dataUrl: string, parseOptions: any, loadData: Function): Promise { + let data: any = []; + let lineIndex = 1; + try { + let content: string = String(await fileUtils.readDataFile(dataUrl, 'utf8')); + data = parseEDNString(content, { + ...defaultEDNParseOptions, + ...parseOptions, + }); + } + catch (error) { + this.logger.logMessage(LogLevel.Error, `getData(): Error parsing '${dataUrl}' \ + \n\t line #: ${lineIndex} Error:`, error.message); + window.showErrorMessage(`Unable to parse data file: '${dataUrl}'. \ + \n\t Line #: ${lineIndex} Error: ${error.message}`); + } + loadData(jsonUtils.convertJsonData(data)); + } + + /** + * Gets data table names for data sources with multiple data sets. + * @param dataUrl Local data file path or remote data url. + */ + public getDataTableNames(dataUrl: string): Array { + return []; // none for edn data files + } + + /** + * Gets data schema in json format for file types that provide it. + * @param dataUrl Local data file path or remote data url. + */ + public getDataSchema(dataUrl: string): any { + // TODO: auto-gen json schema ??? + return null; // none for edn data files + } + + /** + * Saves EDN data. + * @param filePath Local data file path. + * @param fileData Raw data to save. + * @param tableName Table name for data files with multiple tables support. + * @param showData Show saved data callback. + */ + public saveData(filePath: string, fileData: any, tableName: string, showData?: Function): void { + fileData = toEDNStringFromSimpleObject(fileData, {keysAs: 'keyword'}); + if ( fileData.length > 0) { + // TODO: change this to async later + fs.writeFile(filePath, fileData, (error) => showData ? showData(error) : null); + } + } + +} diff --git a/web/data.view.html b/web/data.view.html index 7f80792..1f11fb0 100644 --- a/web/data.view.html +++ b/web/data.view.html @@ -30,6 +30,7 @@ + diff --git a/web/scripts/data.view.js b/web/scripts/data.view.js index 49d9383..1cb76df 100644 --- a/web/scripts/data.view.js +++ b/web/scripts/data.view.js @@ -356,6 +356,7 @@ function getData(fileName, data, schema = {}) { case '.xml': case '.html': case '.avro': + case '.edn': case '.env': case '.properties': case '.config': @@ -427,6 +428,7 @@ function saveData() { case '.md': viewer.view.to_csv().then(csv => postData(csv, dataFileType)); break; + case '.edn': case '.json': case '.jsonl': case '.json5':