1.2 Tabular Data - Working With Data & APIs in JavaScript

แชร์
ฝัง
  • เผยแพร่เมื่อ 11 ก.ย. 2024
  • Welcome to Working with Data and APIs in JavaScript!
    This course is for aspiring developers who want to learn how to work with data in web applications. How do you retrieve, collect, and store data? The course will be taught through a series of creating three data projects.
    If you haven’t watched the first part of the lesson, do that first!
    This second part of the lesson looks at loading and parsing a CSV file (comma-separated values) with the web fetch() API.
    🎥 PREVIOUS LESSON: • 1.1: fetch() - Working...
    🎥 NEXT LESSON: • 1.3: Graphing with Cha...
    🎥 FULL COURSE: • Working with Data and ...
    💻github.com/Cod...
    🔗data.giss.nasa...
    🔗marketplace.vi...
    🚂 Website: thecodingtrain....
    💖 Patreon: / codingtrain
    🛒 Store: www.designbyhu...
    📚 Books: www.amazon.com...
    🎥 Coding Challenges: • Coding Challenges
    🎥 Intro to Programming: • Start learning here!
    🔗 p5.js: p5js.org
    🔗 Processing: processing.org
    📄 Code of Conduct: github.com/Cod...

ความคิดเห็น • 167

  • @TheCodingTrain
    @TheCodingTrain  5 ปีที่แล้ว +31

    For this to work, make sure you are running a local server! I cover how to do this with node.js here: th-cam.com/video/FjWbUK2HdCo/w-d-xo.html

    • @digigoliath
      @digigoliath 5 ปีที่แล้ว

      No wonder. LOL

    • @atyourservice5728
      @atyourservice5728 4 ปีที่แล้ว

      csv vs sql table?

    • @choudharyusama7474
      @choudharyusama7474 4 ปีที่แล้ว +1

      Hello
      I am facing a problem
      I try to load csv file and when i update the csv file and refresh my browser the data can't updated unless I refresh the browser by ctrl f5

    • @craigtcooper777
      @craigtcooper777 4 ปีที่แล้ว

      @@choudharyusama7474 He's using a cool extension in vscode called Live Server marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer
      Which is making it so that it's a live reload. Hope that helps! :)

    • @anandarya4664
      @anandarya4664 4 ปีที่แล้ว +1

      @@choudharyusama7474 ya that may due its cache

  • @prernasharma3439
    @prernasharma3439 5 ปีที่แล้ว +32

    You know what? I'll come to the video and content later, Firstly I want to say you are such a nice person. It's like you are enjoying work and always happy and in a jolly mood. That makes learning fun. Thank you for making JavaScript interesting.
    Also, the content is so good and the videos are so interesting.
    Thankyou.

    • @TheCodingTrain
      @TheCodingTrain  5 ปีที่แล้ว +5

      Thank you for the nice feedback!

  • @kenfeier5542
    @kenfeier5542 5 ปีที่แล้ว +11

    I love that you break down everything so simply and show implementation using code. You make learning this stuff a lot easier than it was for me in college. Let alone you've taught me more!

  • @BradleyDunlap
    @BradleyDunlap 5 ปีที่แล้ว +53

    Great production in this video Daniel! Congrats to your editor. Also, great presentation by you per usual.

  • @blusanders
    @blusanders 3 ปีที่แล้ว +3

    6 weeks into sw bootcamp. Really enjoy the videos. Easy to understand and fun to watch.

  • @sajintamang1037
    @sajintamang1037 3 ปีที่แล้ว +1

    This guy is absolute nuts. Best content for API ever on internet. May god bless you and family man . your videos has really helped me a lot

  • @ritwikbaksi8407
    @ritwikbaksi8407 4 ปีที่แล้ว

    Honestly was confused by the array portion and didn't expect you to go back and explain it again. Thanks so much.

  • @Djzaamir
    @Djzaamir 5 ปีที่แล้ว +4

    I really love this new editing style, where the references are popping out in the back as you talk :) Good Job Coding Train

  • @shubhrashukla7879
    @shubhrashukla7879 5 ปีที่แล้ว +17

    is that the dan that i knew who always made mistakes? I don't know when you got so professional but it looks really cool and the production and editing were at another level. sooooo kudos to you!

    • @TheCodingTrain
      @TheCodingTrain  5 ปีที่แล้ว +9

      Yeah, this is an experiment. . but I'm still going to do my raw live streams!!!

    • @filcondrat
      @filcondrat 5 ปีที่แล้ว

      what is that all about

  • @sorrychou
    @sorrychou 5 ปีที่แล้ว +1

    簡單明確的步驟處理csv資料,對初學者非常好👍

  • @mehmeteminyldz5750
    @mehmeteminyldz5750 4 ปีที่แล้ว +2

    Dan, thank you a lot for this great video. I love the way you teach. Instead of publishing videos where everything goes perfect, you make mistakes and correct them. Actually, that is the way how people learn things.

  • @alanalencar
    @alanalencar 4 ปีที่แล้ว

    Hello, I couldn't leave a message of congratulations for you. Simply the best. Direct, clear, didactic and simply outstanding. Watching everything from here in Brazil.

  • @pulok9909
    @pulok9909 3 ปีที่แล้ว

    My teacher who I really love. Thanks for your great teaching with always smile on the face.

  • @andrewlawton7415
    @andrewlawton7415 4 ปีที่แล้ว

    Its about time somebody explains this and it makes REAL sense! kudos!

  • @programming-dude
    @programming-dude 2 ปีที่แล้ว

    really love your teaching style make me smile at your expression

  • @SumitGupta-ys7lb
    @SumitGupta-ys7lb 9 หลายเดือนก่อน

    Quick and simple explanation! Thanks a lot!!

  • @GilbertBigelow
    @GilbertBigelow 5 ปีที่แล้ว +1

    For handling/ removing the header Instead of using slice just start the 'for loop' at 1 and you will not add extra processes to the code.
    I am just an amateur and not trying to critique your work just making an observation while learning from you many other things I have yet to put together.
    Mr. Shiffman, Thanks for the great learning tools you provide.

    • @jamesa.
      @jamesa. 4 ปีที่แล้ว

      Oh Yes I totally get your point sir! good one, also we might notice that he later went on to user forEachLoop which start from the first element. :) , but the way you described it is also a nice alternative I must say,

  • @grainfrizz
    @grainfrizz 5 ปีที่แล้ว +29

    Dan, don't be afraid to say that 🐼 is a level 11 cuteness. :)

  • @shashankthapa659
    @shashankthapa659 2 ปีที่แล้ว

    One of the best video so far on API's enjoying the course. Thanks Daniel!😇

  • @poornaathreya
    @poornaathreya 3 ปีที่แล้ว +5

    My fetch isn't working. Every time it says the following error:
    Try.html:10 Fetch API cannot load file. URL scheme must be "http" or "https" for CORS request.
    Any help would be welcome🤧👍🏼

    • @Hamid-lo4wu
      @Hamid-lo4wu 3 ปีที่แล้ว +1

      I am getting the same error ... If you found the solution , please let me know, thanks

    • @melissabarrera7176
      @melissabarrera7176 3 ปีที่แล้ว +3

      maybe this is a little too late to be answering, but to who it may concern... it needs to be hosted on a live server somewhere for the Fetch API to work correctly. Instead of opening on default browser, you can install 'Live Server' (a VSCode extension) and open it with that! :)

    • @Hamid-lo4wu
      @Hamid-lo4wu 3 ปีที่แล้ว

      @@melissabarrera7176 yes It's the right solution... I fixed it later & I finished my work .... Thank u for your answer

    • @VincentFS
      @VincentFS ปีที่แล้ว

      @@melissabarrera7176 THANK YOU

  • @user-yq2em5ho9q
    @user-yq2em5ho9q 4 ปีที่แล้ว +1

    Seriously learning something never felt this easy 🤩

  • @kdog.unleashed
    @kdog.unleashed 3 ปีที่แล้ว

    Just want to thank you for all your great work. You helped me so many times! Thank you! Greetings from berlin!

  • @juansantiagocuadra3672
    @juansantiagocuadra3672 5 ปีที่แล้ว +3

    Thank you for all the great content.

  • @JasonLayton
    @JasonLayton 4 ปีที่แล้ว

    Really enjoying the course and your energy. Thank you.

  • @richardramirez5746
    @richardramirez5746 ปีที่แล้ว

    No way to thank you for these contributions!

  • @RupertBruce
    @RupertBruce 2 ปีที่แล้ว

    Thank you for the RainbowCSV link - it's got a lot more than just a rainbow - a veritable pot of gold!

  • @rotrose7531
    @rotrose7531 4 ปีที่แล้ว

    Thank you for unfailingly providing these great stuff. I always learn a lot from you.

  • @schitlipz
    @schitlipz 7 หลายเดือนก่อน

    Thanks. I needed to know a lot of the details in this video. [Never mind, even running a local server isn't satisfying it no more]

  • @cesaremannino2774
    @cesaremannino2774 3 ปีที่แล้ว

    I`m coming from Django, Kudos to the teacher to make node.js so understandable! so far is easier than Django...

  • @CarlosLopez-tm7bp
    @CarlosLopez-tm7bp 2 ปีที่แล้ว

    You are the one! Love your energy!

  • @DioArsya
    @DioArsya 3 ปีที่แล้ว

    Wow, i used to work with data like this in Python when i'm working with my ML and DL projects back then. Now i want to learn javascript and vuejs for my website projects, and guess what. I'm learning data manipulation again here in another concepts of language. Hahaha thank you, sir! :)

  • @nelnav1222
    @nelnav1222 4 ปีที่แล้ว

    I love this channel, I dont know English but Im understanding

  • @madhavjha5289
    @madhavjha5289 5 ปีที่แล้ว +4

    Amazing tutorial 👍

  • @heatherjackson920
    @heatherjackson920 ปีที่แล้ว

    Wow, your videos are high quality. Thank you!

  • @kindlyman100
    @kindlyman100 3 ปีที่แล้ว

    the writing of the code is readable, a very elite thing

  • @frankberry184
    @frankberry184 2 ปีที่แล้ว

    I think you should do videos on react too cause i love the way you teach. you are good. Am actually learning react though

  • @anishnair7348
    @anishnair7348 3 ปีที่แล้ว

    Thank you so much sir. Your video on api and fetch() helped me to complete my project. You have explained it so nicely and in simple way for beginners. 😍

  • @albertofantozzi7804
    @albertofantozzi7804 4 ปีที่แล้ว

    That ending clip tho! Amazing !

  • @arielspalter7425
    @arielspalter7425 4 ปีที่แล้ว

    Just came across your videos. Awesome stuff! Subscribed.

  • @nicotomomate
    @nicotomomate 4 ปีที่แล้ว +2

    I randomly get this video playing and said "this guy is a great teacher".. Then i realized you have 1 millions suscribers 😂

  • @abazur7742
    @abazur7742 5 ปีที่แล้ว +2

    If you are going to make more high quality tutorials like this one, you will it 1mil subs soon

  • @oumao
    @oumao 3 ปีที่แล้ว

    You can as well refactor the columns data by performing an array destructuring such that
    const [year, temp] = columns;

  • @heksqer1022
    @heksqer1022 5 ปีที่แล้ว

    Amazing video Dan ! the editing was cool

  • @City__Walker
    @City__Walker 2 ปีที่แล้ว

    Ohh i need this for my project (made charts as in power bi upload data and create chart use uploaded data)😍😍

  • @ridvankadayifci6100
    @ridvankadayifci6100 5 ปีที่แล้ว +1

    Very good job 👍👍

  • @bedrockcoder5169
    @bedrockcoder5169 4 ปีที่แล้ว +1

    Is there a way to get the data straight from the website?

  • @sciencefordreamers2115
    @sciencefordreamers2115 3 ปีที่แล้ว

    Absolutely awesome! However, I lost an hour before I realized I had to Disable Same Origin Policy to get rid of the browser error I was getting. The sequence to do this : about:config -> security.fileuri.strict_origin_policy -> false

  • @wfalcao69
    @wfalcao69 3 ปีที่แล้ว

    WOW!!!!! You are my best friend.

  • @matther2012
    @matther2012 5 ปีที่แล้ว

    Seems like this example could have made use of the map function, instead of the forEach and all of the const variables. Great video as always!

  • @walkastray007
    @walkastray007 5 ปีที่แล้ว +1

    Everyone gets a nickle every time Dan says "beyond the scope of this video" every video

  • @frankberry184
    @frankberry184 2 ปีที่แล้ว

    I think you will help me understand react better

  • @omarsh82
    @omarsh82 2 ปีที่แล้ว

    Yes me too...great video.

  • @DeathToCockroaches
    @DeathToCockroaches 4 ปีที่แล้ว

    Wish there was this quality of content for asp.net/c# microsoft related stuff

  • @prithwirajdutta3827
    @prithwirajdutta3827 5 ปีที่แล้ว

    Amazing ! Thanks Daniel.

  • @michalbotor
    @michalbotor 5 ปีที่แล้ว +1

    question: where do javascript variables live anyways? are they maybe allocated in a ram reserved for the bowser's tab, or separately? is there a limit to how much % of ram one tab can occupy, or can it take the whole ram or maybe be even stored on a hard drive if it needs be? is the transfer of the data from/to ram to/from browser slower than the transfer of the data from/to ram to/from desktop app would be, like say python ide?
    also: is this csv file fetched only once, or is it being fetched repeatedly?

  • @alexanderbell7736
    @alexanderbell7736 4 ปีที่แล้ว

    Hey Dan, I don't see the solution for getting multiple files in the git repo. I'm also not sure if you want us to fetch a directory of images and then display those, or just create two fetch commands for unique files. One is simple, the other I can't solve.
    Thanks for another enjoyable, informative video :)

  • @AZAMKHAN-vl4lq
    @AZAMKHAN-vl4lq 4 ปีที่แล้ว +1

    hello sir ,,
    can we fetch data direct from fetch("htttps://xyz") withoout saving in our cvs file in code editor,,if yes how can i do this? please reply

    • @martinb3523
      @martinb3523 3 ปีที่แล้ว

      i think not, you probably need a proxy. Like for the image in the last video i tried to get it online and CORS yelled at me XD so i researched it and it happened to be that you need another server to serve you the info that youre requesting from the other server. Look up "CORS anywhere" and try it with that.

  • @matissjudins6272
    @matissjudins6272 2 ปีที่แล้ว

    thank you so much

  • @nayankumar1421
    @nayankumar1421 5 ปีที่แล้ว +2

    I couldn't able to use fetch(). Getting error in console on CORS. I tried to remove CORS its not worked for me. How to read local file using fetch. Could you please any one help me? Thanks in advance

    • @TheCodingTrain
      @TheCodingTrain  5 ปีที่แล้ว +4

      Are you running a local server? I definitely need to make this more clear! More here: th-cam.com/video/FjWbUK2HdCo/w-d-xo.html

    • @nayankumar1421
      @nayankumar1421 5 ปีที่แล้ว

      Oops I miss this video. Thanks for your reply

  • @junky3445
    @junky3445 2 ปีที่แล้ว

    I'm getting a cannot find variable error for Chart in the myChart function that displays the table idk why, its declared as a new variable so idk why and tried to call it as a global variable but still doesn't work. Any recommendations?

  • @sarfrazrajpoot2055
    @sarfrazrajpoot2055 2 ปีที่แล้ว

    Geo sir

  • @avneetsingh2010
    @avneetsingh2010 2 ปีที่แล้ว

    very well :)

  • @jefersonfs
    @jefersonfs 4 ปีที่แล้ว

    Hi teacher! Cheers from Brazil! Look, can you tell me how can I export the data into a json file?

  • @jakeryansison1764
    @jakeryansison1764 3 ปีที่แล้ว

    THANK YOU

  • @nileshgurung9437
    @nileshgurung9437 5 ปีที่แล้ว

    Awesome👍

  • @oliviamooney8995
    @oliviamooney8995 5 ปีที่แล้ว

    I'd love to see your settings to vsc.

  • @clandestine1699
    @clandestine1699 5 ปีที่แล้ว +1

    I was following along, but I was wondering why my temp data was different than yours? Example, 1880 , -.19 and 1881, -.10: Your set shows 1880, -.18 and 1881, -.09 ???

    • @TheCodingTrain
      @TheCodingTrain  5 ปีที่แล้ว

      Weird, maybe I'm referencing the incorrect file or I downloaded the wrong file by accident while making the video?

    • @PaulMcCannWebBuilder
      @PaulMcCannWebBuilder 5 ปีที่แล้ว +1

      It looks like they've updated the data since the video.

  • @Altamashattari786
    @Altamashattari786 3 ปีที่แล้ว

    What if your CSV strings contain newline character or comma character in the data then splitting based on those characters will lead to unexpected results

  • @techzee9000
    @techzee9000 3 ปีที่แล้ว +3

    Hello Code train, thanks for all your presentations they are interesting and educative. I got an error when trying to load the csv on console.log ( Fetch API cannot load file:/// URL scheme must be "http" or "https" for CORS request.
    getData @ index.html:18

    • @waverwind1
      @waverwind1 3 ปีที่แล้ว +1

      I have the same problem

    • @techzee9000
      @techzee9000 3 ปีที่แล้ว

      @@waverwind1 Have u solved it , what did u do

    • @waverwind1
      @waverwind1 3 ปีที่แล้ว +4

      @@techzee9000 yes, I use Visual Studio Code and installed the extension Live Server (see here th-cam.com/video/y4qqQeUDCBQ/w-d-xo.html)
      Right click on the repository and open with Live Server. Good Luck!

    • @techzee9000
      @techzee9000 3 ปีที่แล้ว

      @@waverwind1 thanksss

    • @blackmilk86
      @blackmilk86 3 ปีที่แล้ว

      @@waverwind1 thanks!!!

  • @rubyna5472
    @rubyna5472 4 ปีที่แล้ว

    hi coding train...i have a hard time to fetch the csv file...the console always show fetch api cannot load eventhough i save it in the same file directory...can you tell me how to fix this...

  • @Dasrecord
    @Dasrecord 2 ปีที่แล้ว

    how did the get data function execute before it was defined?

  • @AbhishekSharma-uy1zv
    @AbhishekSharma-uy1zv 3 ปีที่แล้ว

    Fetch Api cannot load the url
    Url scheme file is not supported error

  • @saifahmad5777
    @saifahmad5777 4 ปีที่แล้ว

    you are awsome

  • @chamnil8666
    @chamnil8666 4 ปีที่แล้ว

    data.split(/
    /),didnt work,since data is not a string,when i check typeof data it gives me an object.how do i turn object to string?

  • @shyamsoni5389
    @shyamsoni5389 3 ปีที่แล้ว

    Hi, I am using
    this.props.history.push({
    pathname:`some path`,
    state:{ object :object}
    }) ;
    on handleSubmit click
    And reading the data into routed component like
    this.props.location.state.objectName.field
    This is working fine when I am using BrowserRouter even when i refresh the page i get the values on page BUT when I am using Hashrouter and I refresh the page I get error saying
    Can not read properties of undefined
    Please help

  • @GrumpyOldMan9
    @GrumpyOldMan9 3 ปีที่แล้ว

    You kicked the can down the road; waddaya do when you wanna use that array OUTSIDE of that async scope ??

  • @maximillienkwizera4167
    @maximillienkwizera4167 3 ปีที่แล้ว

    am using Atom editor and its live server can not switch to different file. it only loads one file. ANY HELP??? @The codin train

  • @OonHan
    @OonHan 5 ปีที่แล้ว

    Yes!!!

  • @atulonweb1
    @atulonweb1 3 ปีที่แล้ว

    I want user of my website to be able to upload data and make have option to make different type of charts. I am researching on that, any idea how to achieve that.

  • @DA-rf7zj
    @DA-rf7zj 7 หลายเดือนก่อน

    Just so you know, VS Code doesn't really handle local files like the test.cvs file you use.

  • @OLSCGMS
    @OLSCGMS 2 ปีที่แล้ว +1

    I am getting cors error when i tried to fetch the file

    • @OLSCGMS
      @OLSCGMS 2 ปีที่แล้ว

      @The Coding Train

  • @chubbyBunny94
    @chubbyBunny94 2 ปีที่แล้ว

    I paused the video at 3:50. It took me 2hours and 45 mins to do it myself. I created functions that create a table and inject the headings and data. So noob :'D but progress!

  • @sup9140
    @sup9140 4 ปีที่แล้ว

    How to take the csv directly from website without from local file?

  • @amirsohel9260
    @amirsohel9260 3 ปีที่แล้ว

    it's giving me error when I am giving CSV path in Fetch

  • @iNuchalHead
    @iNuchalHead 5 ปีที่แล้ว

    Would "const table = await response.text().split('
    ').slice(1);" be a bad idea? Thinking that it might be nice to do splitting and slicing asynchronously if the file is huge.

    • @TheCodingTrain
      @TheCodingTrain  5 ปีที่แล้ว +1

      Interesting! I think that would work, sometimes I break things into multiple lines just for clarity. But chaining can make a lot of sense too!

  • @s0n1c88
    @s0n1c88 5 ปีที่แล้ว +1

    Great tut Shiffman, you shiff us to the next level >.< (i know its a bad joke :D)

  •  5 ปีที่แล้ว

    Do i need some import function or something? This fetch method throws me an error "index.html:15 Fetch API cannot load file:////////test.csv. URL scheme must be "http" or "https" for CORS request." Pls help

    • @TheCodingTrain
      @TheCodingTrain  5 ปีที่แล้ว

      For this to work, you need to be running a local server! I should have made this more clear, see: th-cam.com/video/FjWbUK2HdCo/w-d-xo.html

  • @anishagrawal7068
    @anishagrawal7068 5 ปีที่แล้ว +4

    But what about CORS!!

    • @jnsjknn
      @jnsjknn 5 ปีที่แล้ว +2

      Exactly.

    • @AlexMerlin1985
      @AlexMerlin1985 5 ปีที่แล้ว +1

      That's beyond the scope of this video :)

    • @anishagrawal7068
      @anishagrawal7068 5 ปีที่แล้ว

      @@AlexMerlin1985 Is there a viable soln. to client sided CORS?

  • @augischadiegils.5109
    @augischadiegils.5109 2 ปีที่แล้ว

    ❤️❤️❤️❤️❤️

  • @saibadam
    @saibadam 3 ปีที่แล้ว

    I cant fetch without http??

  • @munandisichali605
    @munandisichali605 5 ปีที่แล้ว

    Thanks for the best way to learn codding, can you do a livechart with chart.js, or protly.js....

  • @anuraghazra4772
    @anuraghazra4772 5 ปีที่แล้ว

    Nice!

  • @hakata8889
    @hakata8889 3 ปีที่แล้ว

    just thx

  • @madr3563
    @madr3563 2 ปีที่แล้ว

    how to create csv file?

  • @BobbyBundlez
    @BobbyBundlez 4 ปีที่แล้ว

    how do i just download this csv i cant seem to do that of github to practice with it.... or any csv for that matter... i cant fetch locally like he did in this tutorial. stupid question but still ! fetch('test.csv') wont work even if i have the file locally

    • @martinb3523
      @martinb3523 3 ปีที่แล้ว +1

      i think you need to start a live server in your text editor, then it will probably work.

  • @smile4992
    @smile4992 10 หลายเดือนก่อน

    const response = await fetch(csv_url);
    const csv = await response.text();
    const json = Papa.parse(csv).data;

  • @DigitalMonsters
    @DigitalMonsters 5 ปีที่แล้ว

    I parsed it like this but its really hard to read i think.
    async function getData() {
    const csv = await fetch('./global_temps.csv')
    const text = await csv.text()
    let raw_table = text.split('
    ')
    let raw_headers = raw_table.splice(0, 1)[0]
    let parsed_data = raw_table.map(row => {
    let columns = row.split(',')
    let headers = raw_headers.split(',')
    return headers
    .map((header, index) => {
    return { [header]: columns[index] }
    })
    .reduce((acc, item) => {
    const key = Object.keys(item)[0]
    const value = item[key]
    acc[key] = value;
    return acc
    }, {})
    });
    parsed_data.splice(-1, 1);
    }

  • @josephyou4461
    @josephyou4461 4 ปีที่แล้ว

    I download .csv file and saved it on the same directory with .html folder. but it is not work. Where is the right place to save csv file?

    • @maxdegreat566
      @maxdegreat566 3 ปีที่แล้ว

      did u ever figure it out?

    • @martinb3523
      @martinb3523 3 ปีที่แล้ว

      ​@@maxdegreat566 you save it there but you need to open a local/live server from your text editor and it should work. Or get the link to the info and use a proxy like "CORS anywhere" to get the data.

  • @saltyjose
    @saltyjose 7 หลายเดือนก่อน

    i love you

  • @teebu
    @teebu 4 ปีที่แล้ว

    A few people ask how to get it from the remote url. While not pretty, using a middle service that adds the needed cors is one way. fetch('cors-anywhere.herokuapp.com/data.giss.nasa.gov/gistemp/tabledata_v4/ZonAnn.Ts+dSST.csv');