PGDB_Read.py 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. import json
  2. import psycopg2
  3. def query_database(cursor,nm_values):
  4. try:
  5. # 要查询的 nm 值列表
  6. # 参数化查询
  7. query = """
  8. SELECT
  9. nm, v
  10. FROM realtimedata
  11. WHERE nm IN %s;
  12. """
  13. # 执行 SQL 查询,传递一个元组作为 IN 子句的参数
  14. cursor.execute(query, (tuple(nm_values),))
  15. # 获取查询结果
  16. results = cursor.fetchall()
  17. #json_str = results = json.dumps(results)
  18. # 将列表转换为字典
  19. # 构建字典,根据值的类型转换为 int 或 float
  20. result_dict = {row[0]: float(row[1]) if '.' in row[1] else int(row[1]) for row in results}
  21. # 将字典转换为 JSON 字符串
  22. json_str = json.dumps(result_dict, ensure_ascii=False, indent=4)
  23. # 打印 JSON 字符串
  24. print("数据库连接已关闭")
  25. return json_str
  26. except psycopg2.Error as e:
  27. print("数据库操作出错")
  28. print("错误详情:", e)