2023-08-14 09:27:02 +00:00
from dotenv import load_dotenv
# read .env file from current working directory
load_dotenv ( )
# ANCHOR: connect
import taosws
import os
url = os . environ [ " TDENGINE_CLOUD_URL " ]
token = os . environ [ " TDENGINE_CLOUD_TOKEN " ]
try :
2023-10-07 10:03:08 +00:00
conn = taosws . connect ( " %s ?token= %s " % ( url , token ) )
2023-08-14 09:27:02 +00:00
except Exception as e :
print ( str ( e ) )
# ANCHOR_END: connect
# ANCHOR: insert
# create super table
conn . execute ( " CREATE STABLE IF NOT EXISTS power.meters (ts TIMESTAMP, current FLOAT, voltage INT, phase FLOAT) TAGS (location BINARY(64), groupId INT) " )
# insert multiple rows into multiple tables at once. subtables will be created automatically.
affected_row = conn . execute ( """ INSERT INTO power.d1001 USING power.meters TAGS( ' California.SanFrancisco ' , 2) VALUES ( ' 2018-10-03 14:38:05.000 ' , 10.30000, 219, 0.31000) ( ' 2018-10-03 14:38:15.000 ' , 12.60000, 218, 0.33000) ( ' 2018-10-03 14:38:16.800 ' , 12.30000, 221, 0.31000)
power . d1002 USING power . meters TAGS ( ' California.SanFrancisco ' , 3 ) VALUES ( ' 2018-10-03 14:38:16.650 ' , 10.30000 , 218 , 0.25000 )
""" )
print ( " affected_row " , affected_row ) # 4
# ANCHOR_END: insert
# ANCHOR: query
result = conn . query ( " SELECT ts, current FROM power.meters LIMIT 2 " )
# ANCHOR_END: query
# ANCHOR: fields
print ( result . fields )
# output: [{'name': 'ts', 'type': 9, 'bytes': 8}, {'name': 'current', 'type': 6, 'bytes': 4}]
# ANCHOR_END: fields
# ANCHOR: rows
print ( result . rows )
# output: 3
# ANCHOR_END: rows
# ANCHOR: iter
for row in result :
print ( row )
# output:
# [datetime.datetime(2018, 10, 3, 14, 38, 5, tzinfo=datetime.timezone.utc), 10.3]
# [datetime.datetime(2018, 10, 3, 14, 38, 15, tzinfo=datetime.timezone.utc), 12.6]