You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python通过SODA API获取NASA陨石数据集全部45716行数据?

获取完整的NASA陨石着陆数据集

你遇到的情况其实是因为data.nasa.gov底层使用的Socrata API有默认返回限制:它只会返回前1000条记录,这是平台为平衡服务器负载设置的规则。要拿到全部45716行数据,这里有几种靠谱的解决方法:

方法1:直接设置$limit参数一次性获取

Socrata API支持用$limit参数指定返回的最大记录数,你可以直接把它设为数据集的总条数(45716),这样就能一次性拿到所有数据:

import requests
import pandas as pd

# 直接指定limit为总记录数
response = requests.get('https://data.nasa.gov/resource/gh4g-9sfh.json?$limit=45716')
meteor_data = response.json()
df = pd.DataFrame(meteor_data)
print(df.shape)  # 输出应该是 (45716, 13) 左右

如果你不确定总条数,还可以先请求一次基础URL,从响应头的X-Total-Count字段里拿到准确的总记录数,再动态设置limit:

import requests
import pandas as pd

base_url = 'https://data.nasa.gov/resource/gh4g-9sfh.json'
# 先获取总记录数
response = requests.get(base_url)
total_count = int(response.headers['X-Total-Count'])

# 请求全部数据
full_response = requests.get(f'{base_url}?$limit={total_count}')
meteor_data = full_response.json()
df = pd.DataFrame(meteor_data)

方法2:分页获取(适合超大规模数据集)

如果数据集特别大,一次性请求可能会超时或者触发速率限制,你可以用$offset参数分页获取,每次请求1000条,循环直到拿到所有数据:

import requests
import pandas as pd
import time

base_url = 'https://data.nasa.gov/resource/gh4g-9sfh.json'
limit_per_page = 1000
current_offset = 0
all_meteor_data = []

# 先获取总记录数
response = requests.get(base_url)
total_count = int(response.headers['X-Total-Count'])

while current_offset < total_count:
    # 构造分页请求URL
    page_url = f'{base_url}?$limit={limit_per_page}&$offset={current_offset}'
    page_response = requests.get(page_url)
    page_data = page_response.json()
    all_meteor_data.extend(page_data)
    
    # 更新偏移量,加个小延迟避免触发速率限制
    current_offset += limit_per_page
    time.sleep(0.5)

df = pd.DataFrame(all_meteor_data)
print(df.shape)

方法3:直接读取CSV版本(最简单)

其实还有更省心的方法:直接用pandas读取数据集的CSV下载链接,这个链接没有1000行的限制,能直接拿到完整数据:

import pandas as pd

# 直接读取完整CSV文件
df = pd.read_csv('https://data.nasa.gov/api/views/gh4g-9sfh/rows.csv?accessType=DOWNLOAD')
print(df.shape)

这个方法不需要处理API的参数,代码最简洁,推荐优先尝试。

内容的提问来源于stack exchange,提问作者Dhruv Chaudhary

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 09:04:32