Public
Edited
Nov 28, 2022
Importers
Insert cell
Insert cell
viewof csvData = csvInput({
label: "<h3>Import CSV Data</h3>"
})
Insert cell
csvData
Insert cell
viewof jsonData = jsonInput({
label: "<h3>Import JSON Data</h3>"
})
Insert cell
jsonData
Insert cell
Insert cell
Insert cell
function jsonInput({initialUrl, init, accept = ".json", label = ""}) {
return fileInput({
initialUrl,
accept,
load(url) {
return fetch(url, init).then(response => {
if (!response.ok) throw new Error(response.status + " " + response.statusText);
return response.json();
});
},
label
});
}
Insert cell
function csvInput({ init, accept = ".csv", label = "", delimiter = "," }) {
const psv = d3.dsvFormat(delimiter);
return fileInput({
accept,
load(url) {
return fetch(url, init)
.then(function (response) {
return response.ok
? response.text()
: Promise.reject(response.status);
})
.then(function (text) {
return psv.parse(text);
});
},
label
});
}
Insert cell
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more