Closed wingfish closed 4 years ago
没有返回日期,应该这个是最新日期吧。看到增加确证,增加死亡,增加治愈三个数字,但是没有累计确诊,累计死亡,累计治愈。
没有传递stime 和 etime,默认是一周的时间区间。如果需要返回 “累计确诊,累计死亡,累计治愈。” 也是返回这段时间内的总计?
武汉的问题,我记得国际数据都是把武汉单列的,所以需要再放一个参数,比如 include_china_wuhan, 默认是true,包含武汉。
查询其他国家也需要返回武汉的数据吗?返回的数据是否放在最外层,不放到 area 中?
应该是按照日期列出,不要给累计数。
层级结构增加日期,显示每日 增加确证,增加死亡,增加治愈
以后问题的序号还是要跟一下,便于看前面的内容
我把上面的整个问题和大家的答复整理一下:
1 接口参数的country 修改为 region,city 修改为 area;包括返回json中也要修改;
2 如果入参没有日期,则返回最新日期,在返回json中要记录;
3 单个日期来说,比如最新日期,指定日期,返回的是 新增确证,新增死亡,新增治愈,然后是不是要增加累计确诊,累计死亡,累计治愈。也就是一个region或者area,单日期是返回这6个数字。这个也要数据库一起看一下,是否支持;
4 如果是输入日期范围的话,就按照上面这个分日期,而不是自动累加。同样看一下数据库是否支持。日期范围支持返回最近10天。以后看情况再放开。不用考虑累计,如果要累计数的话,只要不穿日期就可以了,得到的就是最新的;
5 如果region是输入China,要考虑港澳台,是否包含港澳台,设置一个 include_hmt,默认是不包含,符合国内的一般统计口径,如果为True,则计算在China里面。因为字段名称修改,所以港澳台也可以独立传递了。
6 武汉的问题,我记得国际数据都是把武汉单列的,所以需要再放一个参数,比如 include_china_wuhan, 默认是true,包含武汉,只有传入region是China,这个参数才有效;
7 西藏的问题,请老张也确认一下,中国官方的翻译名称是 Xizang
接口
• infection-region o region=国家,可不传,返回全部国家 按天的新增死亡、新增治愈、新增确诊断、累记确证、累计死亡和累计治愈 日汇总数据 o include_hmt=默认True, 包含港澳台,算中国。否则不计算显示港澳台的数据 o start_date和end_date 只输入start_date,返回那天的数据,大于今天报错 只输入end_date,报错 同时输入,返回10天数据,大于报错 都不输入,返回输入库最新一天数据 • infection-region-detail o region=国家,必须传 o 返回某个国家城市的area的 日汇总数据 按天的新增死亡、新增治愈、新增确诊断、累记确证、累计死亡和累计治愈 o include_hmt=True, 包含港澳台,算中国。否则不显示港澳台的数据 o start_date和end_date 只输入start_date,返回那天的数据,大于今天报错 只输入end_date,报错 同时输入,返回10天数据,大于报错 都不输入,返回输入库最新一天数据
环境 | HTTP请求地址 | 备注 |
---|---|---|
测试 | /api/v1/infection/region | |
访问方式 | GET | |
请求头 | Token |
URL 参数
名称 | 类型 | 是否必须 | 其他限制 | 描述 |
---|---|---|---|---|
region | String | 是 | 国家名称 | |
start_date | String | 否 | 可单独传递,单独表示具体的一天(不可大于今日日期值) | 开始日期 |
end_date | String | 否 | 不可单独传递 | 截至日期 |
include_hmt | Boolean | 否 | 默认 True | 数据是否包含港澳台 |
返回示例
{
"data": {
"region": {
// 以 region 名称作为 key,使用时候直接 get("China"), 如果为 array 则需要遍历
"China": {
// 以 日期 作为 key,使用时候直接 get("2020-02-02"), 如果为 array 则需要遍历
"2020-02-02": {
"confirmed_add": 1,
"deaths_add": 1,
"recovered_add": 1,
"confirmed": 2,
"deaths": 2,
"recovered": 2
},
"2020-02-03": {
"confirmed_add": 1,
"deaths_add": 1,
"recovered_add": 1,
"confirmed": 2,
"deaths": 2,
"recovered": 2
}
}
}
},
"message": "success",
"return_code": "90000"
}
环境 | HTTP请求地址 | 备注 |
---|---|---|
测试 | /api/v1/infection/region/detail | |
访问方式 | GET | |
请求头 | Token |
URL 参数
名称 | 类型 | 是否必须 | 其他限制 | 描述 |
---|---|---|---|---|
region | String | 是 | 国家名称 | |
start_date | String | 否 | 可单独传递,单独表示具体的一天(不可大于今日日期值) | 开始日期 |
end_date | String | 否 | 不可单独传递 | 截至日期 |
include_hmt | Boolean | 否 | 默认 True | 数据是否包含港澳台 |
返回示例
{
"data": {
"area": {
// 以 area 名称作为 key,使用时候直接 get("Chongqiong"), 如果为 array 则需要遍历
"Chongqiong": {
// 以 日期 作为 key,使用时候直接 get("2020-02-02"), 如果为 array 则需要遍历
"2020-02-02": {
"confirmed_add": 1,
"deaths_add": 1,
"recovered_add": 1,
"confirmed": 2,
"deaths": 2,
"recovered": 2
},
"2020-02-03": {
"confirmed_add": 1,
"deaths_add": 1,
"recovered_add": 1,
"confirmed": 2,
"deaths": 2,
"recovered": 2
}
}
}
},
"message": "success",
"return_code": "90000"
}
初步测试下来,region 和 region detail 功能上没有问题,更加仔细的测试和数据检查要继续。
测试代码: `import requests import pandas as pd
url = 'https://covid-19.adapay.tech/api/v1/' token = '497115d0c2ff9586bf0fe03088cfdbe2' region = 'US'
headers = { 'token': token }
payload = { 'region': region, 'start_date': '2020-03-26', 'end_date': '2020-04-04' }
r = requests.get(url+'infection/region', params=payload, headers=headers)
data = r.json()
print('---')
print(data)
print('---')
for key, value in data['data']['region'][region].items(): print(key, value)
print('---')
df = pd.DataFrame.from_dict(data['data']['region'][region]) print(df)
print('---')
df = df.T print(df)
payload = { 'region': region, 'start_date': '2020-03-26', 'end_date': '2020-03-27' }
r = requests.get(url+'infection/region/detail', params=payload, headers=headers)
data = r.json()
print('---')
print(data)
print('---')
for key, value in data['data']['area'].items(): print(key, value)
print('---')
df = pd.DataFrame.from_dict(data['data']) print(df)
print('---') df = pd.DataFrame.from_dict(data['data']['area']['New York']) print(df)
print('---')
df = df.T print(df) `
region 和 region detail 基本功能测试 ok。
考虑政治问题,数据库字段和参数名称都不能用 country,避免不必要的麻烦。接口参数的country 修改为 region吧。
只传region参数,返回:
{"code":"90000","message":"success","data":{"name":"China","confirmed_add":703,"deaths_add":37,"recovered_add":2246,"area":[]}}
没有返回日期,应该这个是最新日期吧。 看到增加确证,增加死亡,增加治愈三个数字,但是没有累计确诊,累计死亡,累计治愈。
我看了新闻,一个国家的当天数字是:新增确诊,确证,死亡,治愈,这四个。
传国家参数和开始日期,基本正确。
传region参数,China的话,有特殊情况要处理 是否包含港澳台,设置一个 include_hmt,默认是不包含,符合国内的一般统计口径,如果为True,则计算在China里面。因为字段名称修改,所以港澳台也可以独立传递了。
武汉的问题,我记得国际数据都是把武汉单列的,所以需要再放一个参数,比如 include_china_wuhan, 默认是true,包含武汉。
西藏的问题,请老张也确认一下,中国官方的翻译名称是 Xizang还是 Tibet?
日期范围有错误,如果输入stime和etime,不能显示时间范围内的数据,还是我理解错了,这个给出的是累计数字?刚才讨论了,应该是按照日期列出,不要给累计数。