测试并修复api导入路径错误
This commit is contained in:
@@ -7,18 +7,19 @@ import csv
|
||||
# get_data 是用来获取 历史数据,也就是非实时数据的接口
|
||||
# get_realtime 是用来获取 实时数据
|
||||
|
||||
|
||||
def convert_timestamp_to_beijing_time(timestamp: Union[int, float]) -> datetime:
|
||||
# 将毫秒级时间戳转换为秒级时间戳
|
||||
timestamp_seconds = timestamp / 1000
|
||||
|
||||
# 将时间戳转换为datetime对象
|
||||
utc_time = datetime.utcfromtimestamp(timestamp_seconds)
|
||||
utc_time = datetime.fromtimestamp(timestamp_seconds)
|
||||
|
||||
# 设定UTC时区
|
||||
utc_timezone = pytz.timezone('UTC')
|
||||
utc_timezone = pytz.timezone("UTC")
|
||||
|
||||
# 转换为北京时间
|
||||
beijing_timezone = pytz.timezone('Asia/Shanghai')
|
||||
beijing_timezone = pytz.timezone("Asia/Shanghai")
|
||||
beijing_time = utc_time.replace(tzinfo=utc_timezone).astimezone(beijing_timezone)
|
||||
|
||||
return beijing_time
|
||||
@@ -26,10 +27,10 @@ def convert_timestamp_to_beijing_time(timestamp: Union[int, float]) -> datetime:
|
||||
|
||||
def beijing_time_to_utc(beijing_time_str: str) -> str:
|
||||
# 定义北京时区
|
||||
beijing_timezone = pytz.timezone('Asia/Shanghai')
|
||||
beijing_timezone = pytz.timezone("Asia/Shanghai")
|
||||
|
||||
# 将字符串转换为datetime对象
|
||||
beijing_time = datetime.strptime(beijing_time_str, '%Y-%m-%d %H:%M:%S')
|
||||
beijing_time = datetime.strptime(beijing_time_str, "%Y-%m-%d %H:%M:%S")
|
||||
|
||||
# 本地化时间对象
|
||||
beijing_time = beijing_timezone.localize(beijing_time)
|
||||
@@ -38,29 +39,31 @@ def beijing_time_to_utc(beijing_time_str: str) -> str:
|
||||
utc_time = beijing_time.astimezone(pytz.utc)
|
||||
|
||||
# 转换为ISO 8601格式的字符串
|
||||
return utc_time.strftime('%Y-%m-%dT%H:%M:%SZ')
|
||||
return utc_time.strftime("%Y-%m-%dT%H:%M:%SZ")
|
||||
|
||||
|
||||
def get_history_data(ids: str, begin_date: str, end_date: str, downsample: Optional[str]) -> List[Dict[str, Union[str, datetime, int, float]]]:
|
||||
# def get_history_data(ids: str, begin_date: str, end_date: str, downsample: Optional[str]) -> None:
|
||||
def get_history_data(
|
||||
ids: str, begin_date: str, end_date: str, downsample: Optional[str]
|
||||
) -> List[Dict[str, Union[str, datetime, int, float]]]:
|
||||
# def get_history_data(ids: str, begin_date: str, end_date: str, downsample: Optional[str]) -> None:
|
||||
# 转换输入的北京时间为UTC时间
|
||||
begin_date_utc = beijing_time_to_utc(begin_date)
|
||||
end_date_utc = beijing_time_to_utc(end_date)
|
||||
|
||||
# 数据接口的地址
|
||||
url = 'http://183.64.62.100:9057/loong/api/curves/data'
|
||||
url = "http://183.64.62.100:9057/loong/api/curves/data"
|
||||
# url = 'http://10.101.15.16:9000/loong/api/curves/data'
|
||||
# url_path = 'http://10.101.15.16:9000/loong' # 内网
|
||||
|
||||
# 设置 GET 请求的参数
|
||||
params = {
|
||||
'ids': ids,
|
||||
'beginDate': begin_date_utc,
|
||||
'endDate': end_date_utc,
|
||||
'downsample': downsample
|
||||
"ids": ids,
|
||||
"beginDate": begin_date_utc,
|
||||
"endDate": end_date_utc,
|
||||
"downsample": downsample,
|
||||
}
|
||||
|
||||
history_data_list =[]
|
||||
history_data_list = []
|
||||
|
||||
try:
|
||||
# 发送 GET 请求获取数据
|
||||
@@ -73,24 +76,26 @@ def get_history_data(ids: str, begin_date: str, end_date: str, downsample: Optio
|
||||
# 这里可以对获取到的数据进行进一步处理
|
||||
|
||||
# 打印 'mpointId' 和 'mpointName'
|
||||
for item in data['items']:
|
||||
mpoint_id = str(item['mpointId'])
|
||||
mpoint_name = item['mpointName']
|
||||
for item in data["items"]:
|
||||
mpoint_id = str(item["mpointId"])
|
||||
mpoint_name = item["mpointName"]
|
||||
# print("mpointId:", item['mpointId'])
|
||||
# print("mpointName:", item['mpointName'])
|
||||
|
||||
# 打印 'dataDate' 和 'dataValue'
|
||||
for item_data in item['data']:
|
||||
for item_data in item["data"]:
|
||||
# 将时间戳转换为北京时间
|
||||
beijing_time = convert_timestamp_to_beijing_time(item_data['dataDate'])
|
||||
data_value = item_data['dataValue']
|
||||
beijing_time = convert_timestamp_to_beijing_time(
|
||||
item_data["dataDate"]
|
||||
)
|
||||
data_value = item_data["dataValue"]
|
||||
# 创建一个字典存储每条数据
|
||||
data_dict = {
|
||||
'time': beijing_time,
|
||||
'device_ID': str(mpoint_id),
|
||||
'description': mpoint_name,
|
||||
"time": beijing_time,
|
||||
"device_ID": str(mpoint_id),
|
||||
"description": mpoint_name,
|
||||
# 'dataDate (Beijing Time)': beijing_time.strftime('%Y-%m-%d %H:%M:%S'),
|
||||
'monitored_value': data_value # 保留原有类型
|
||||
"monitored_value": data_value, # 保留原有类型
|
||||
}
|
||||
|
||||
history_data_list.append(data_dict)
|
||||
@@ -164,4 +169,4 @@ def get_history_data(ids: str, begin_date: str, end_date: str, downsample: Optio
|
||||
# for data in data_list1:
|
||||
# writer.writerow([data['measurement'], data['mpointId'], data['date'], data['dataValue'], data['datetime']])
|
||||
#
|
||||
# print(f"筛选后的数据已保存到 {filtered_csv_file_path}")
|
||||
# print(f"筛选后的数据已保存到 {filtered_csv_file_path}")
|
||||
|
||||
@@ -8,35 +8,33 @@ def convert_timestamp_to_beijing_time(timestamp):
|
||||
timestamp_seconds = timestamp / 1000
|
||||
|
||||
# 将时间戳转换为datetime对象
|
||||
utc_time = datetime.utcfromtimestamp(timestamp_seconds)
|
||||
utc_time = datetime.fromtimestamp(timestamp_seconds)
|
||||
|
||||
# 设定UTC时区
|
||||
utc_timezone = pytz.timezone('UTC')
|
||||
utc_timezone = pytz.timezone("UTC")
|
||||
|
||||
# 转换为北京时间
|
||||
beijing_timezone = pytz.timezone('Asia/Shanghai')
|
||||
beijing_timezone = pytz.timezone("Asia/Shanghai")
|
||||
beijing_time = utc_time.replace(tzinfo=utc_timezone).astimezone(beijing_timezone)
|
||||
|
||||
return beijing_time
|
||||
|
||||
def conver_beingtime_to_ucttime(timestr:str):
|
||||
beijing_time=datetime.strptime(timestr,'%Y-%m-%d %H:%M:%S')
|
||||
utc_time=beijing_time.astimezone(pytz.utc)
|
||||
str_utc=utc_time.strftime('%Y-%m-%dT%H:%M:%SZ')
|
||||
#print(str_utc)
|
||||
|
||||
def conver_beingtime_to_ucttime(timestr: str):
|
||||
beijing_time = datetime.strptime(timestr, "%Y-%m-%d %H:%M:%S")
|
||||
utc_time = beijing_time.astimezone(pytz.utc)
|
||||
str_utc = utc_time.strftime("%Y-%m-%dT%H:%M:%SZ")
|
||||
# print(str_utc)
|
||||
return str_utc
|
||||
|
||||
def get_hist_data(ids, begin_date,end_date)->dict[str,dict[datetime,float]]:
|
||||
|
||||
def get_hist_data(ids, begin_date, end_date) -> dict[str, dict[datetime, float]]:
|
||||
# 数据接口的地址
|
||||
url = 'http://183.64.62.100:9057/loong/api/curves/data'
|
||||
url = "http://183.64.62.100:9057/loong/api/curves/data"
|
||||
|
||||
# 设置 GET 请求的参数
|
||||
params = {
|
||||
'ids': ids,
|
||||
'beginDate': begin_date,
|
||||
'endDate': end_date
|
||||
}
|
||||
lst_data={}
|
||||
params = {"ids": ids, "beginDate": begin_date, "endDate": end_date}
|
||||
lst_data = {}
|
||||
try:
|
||||
# 发送 GET 请求获取数据
|
||||
response = requests.get(url, params=params)
|
||||
@@ -48,22 +46,27 @@ def get_hist_data(ids, begin_date,end_date)->dict[str,dict[datetime,float]]:
|
||||
# 这里可以对获取到的数据进行进一步处理
|
||||
|
||||
# 打印 'mpointId' 和 'mpointName'
|
||||
for item in data['items']:
|
||||
#print("mpointId:", item['mpointId'])
|
||||
#print("mpointName:", item['mpointName'])
|
||||
for item in data["items"]:
|
||||
# print("mpointId:", item['mpointId'])
|
||||
# print("mpointName:", item['mpointName'])
|
||||
|
||||
# 打印 'dataDate' 和 'dataValue'
|
||||
data_seriers={}
|
||||
for item_data in item['data']:
|
||||
data_seriers = {}
|
||||
for item_data in item["data"]:
|
||||
# print("dataDate:", item_data['dataDate'])
|
||||
# 将时间戳转换为北京时间
|
||||
beijing_time = convert_timestamp_to_beijing_time(item_data['dataDate'])
|
||||
print("dataDate (Beijing Time):", beijing_time.strftime('%Y-%m-%d %H:%M:%S'))
|
||||
print("dataValue:", item_data['dataValue'])
|
||||
beijing_time = convert_timestamp_to_beijing_time(
|
||||
item_data["dataDate"]
|
||||
)
|
||||
print(
|
||||
"dataDate (Beijing Time):",
|
||||
beijing_time.strftime("%Y-%m-%d %H:%M:%S"),
|
||||
)
|
||||
print("dataValue:", item_data["dataValue"])
|
||||
print() # 打印空行分隔不同条目
|
||||
r=float(item_data['dataValue'])
|
||||
data_seriers[beijing_time]=r
|
||||
lst_data[item['mpointId']]=data_seriers
|
||||
r = float(item_data["dataValue"])
|
||||
data_seriers[beijing_time] = r
|
||||
lst_data[item["mpointId"]] = data_seriers
|
||||
return lst_data
|
||||
else:
|
||||
# 如果请求不成功,打印错误信息
|
||||
|
||||
Reference in New Issue
Block a user