Làm thế nào để vẽ biểu đồ dữ liệu trong một trang web từ một tập dữ liệu miễn phí cập nhật hàng ngày?
Tôi đang sử dụng dữ liệu có sẵn trong các liên kết bên dưới để lấy dữ liệu về các trường hợp được xác nhận đối với COVID-19 ở Colombia. Tôi đang mô hình hóa các trường hợp tích lũy bằng một mô hình phi tuyến tính và tất cả đều ổn. Điều này đã được thực hiện bằng cách tải xuống dữ liệu để hoạt động cục bộ. Tôi biết rằng có nhiều cơ chế để phát triển web và tôi tìm thấy nhiều thứ tôi cần trong cộng đồng này, ngoại trừ việc tôi không biết cách cập nhật đồ họa tự động từ dữ liệu có trong các liên kết trong trang web.
https://www.datos.gov.co/Salud-y-Protecci-n-Social/Casos-positivos-de-COVID-19-en-Colombia/gt2j-8ykr/data
https://www.datos.gov.co/w/gt2j-8ykr/dneh-mcp2?cur=i2Z4n-Qy94T&from=root
Cảm ơn những đề xuất của bạn!
Trả lời
Dường như sử dụng Socrata để quản lý dữ liệu. Tôi không có kinh nghiệm với API này, nhưng có vẻ như bạn có thể truy cập nó bằng cách sử dụng biểu mẫu URL này:
https://www.datos.gov.co/Salud-y-Protecci-n-Social/Casos-positivos-de-COVID-19-en-Colombia/gt2j-8ykr
Theo tài liệu Socrata , bạn có thể yêu cầu dữ liệu này tại một địa chỉ cụ thể $offset
và $limit
bằng cách cung cấp chúng dưới dạng các tham số trong URL. Đây là một chút thích hợp và nằm ngoài phạm vi của Mathematica Stack Exchange, nhưng điều này hy vọng sẽ giúp bạn bắt đầu:
(* fetch 10 records starting from offset 0 *)
request =
HTTPRequest["https://www.datos.gov.co/resource/gt2j-8ykr.json",
<| Method -> "GET", "Query" -> {"$limit" -> 10, "$offset" -> 0},
CharacterEncoding -> "UTF8"|>];
response = URLExecute[request];
Sau đó, chúng tôi có thể truy vấn các thuộc tính của JSON phản hồi bằng cách tạo Association
:
(* of our 10 records, get the first 5 cities of location *)
Association[#]["ciudad_de_ubicaci_n"] & /@ response[[1 ;; 5]]
(* {"Bogotá D.C.", "Guadalajara de Buga", "Medellín", "Medellín", "Medellín"} *)
Nếu bạn muốn tổng số mục nhập trong cơ sở dữ liệu (trường hợp) thì tôi nghĩ bạn có thể sử dụng API như sau $select=count(id_de_caso)
:
request =
HTTPRequest["https://www.datos.gov.co/resource/gt2j-8ykr.json",
<| Method -> "GET",
"Query" -> {"$select" -> "count(id_de_caso)", "$offset" -> 0},
CharacterEncoding -> "UTF8"|>];
response = URLExecute[request];
numberOfCases = ToExpression@Values[First[response]][[1]]
(* 456689 *)
Dữ liệu này khớp chính xác với dữ liệu của Columbia tại https://www.trackcorona.live/map kể từ ngày 16 tháng 8 năm 2020.