Python client library
This guide presumes some familiarity with Python and InfluxDB. If just getting started, see Get started with InfluxDB.
Install the InfluxDB Python library:
Ensure that InfluxDB is running. If running InfluxDB locally, visit . (If using InfluxDB Cloud, visit the URL of your InfluxDB Cloud UI. For example: https://us-west-2-1.aws.cloud2.influxdata.com.)
We are going to write some data in using the Python library.
In your Python program, import the InfluxDB client library and use it to write data to InfluxDB.
from influxdb_client.client.write_api import SYNCHRONOUS
-
bucket = "<my-bucket>"
org = "<my-org>"
token = "<my-token>"
# Store the URL of your InfluxDB instance
url="http://localhost:8086"
Instantiate the client. The
InfluxDBClient
object takes three named parameters:url
,org
, andtoken
. Pass in the named parameters.client = influxdb_client.InfluxDBClient(
url=url,
token=token,
org=org
)
The
InfluxDBClient
object has awrite_api
method used for configuration.Instantiate a write client using the
client
object and thewrite_api
method. Use thewrite_api
method to configure the writer object.Create a point object and write it to InfluxDB using the
write
method of the API writer object. The write method requires three parameters:bucket
,org
, andrecord
.p = influxdb_client.Point("my_measurement").tag("location", "Prague").field("temperature", 25.3)
write_api.write(bucket=bucket, org=org, record=p)
from influxdb_client.client.write_api import SYNCHRONOUS
bucket = "<my-bucket>"
org = "<my-org>"
token = "<my-token>"
# Store the URL of your InfluxDB instance
url="http://localhost:8086"
client = influxdb_client.InfluxDBClient(
url=url,
token=token,
org=org
)
write_api = client.write_api(write_options=SYNCHRONOUS)
p = influxdb_client.Point("my_measurement").tag("location", "Prague").field("temperature", 25.3)
write_api.write(bucket=bucket, org=org, record=p)
Instantiate the query client.
query_api = client.query_api()
-
The query client sends the Flux query to InfluxDB and returns a Flux object with a table structure.
Pass the
query()
method two named parameters:org
andquery
.result = query_api.query(org=org, query=query)
Iterate through the tables and records in the Flux object.
- Use the
get_value()
method to return values. - Use the
get_field()
method to return fields.
for record in table.records:
results.append((record.get_field(), record.get_value()))
print(results)
[(temperature, 25.3)]
- Use the
The Flux object provides the following methods for accessing your data:
get_measurement()
: Returns the measurement name of the record.get_field()
: Returns the field name.get_value()
: Returns the actual field value.values
: Returns a map of column values.values.get("<your tag>")
: Returns a value from the record for given column.get_time()
: Returns the time of the record.get_start()
: Returns the inclusive lower time bound of all records in the current table.get_stop()
: Returns the exclusive upper time bound of all records in the current table.
Complete example query script
query_api = client.query_api()
query = ‘ from(bucket:"my-bucket")\
|> range(start: -10m)\
|> filter(fn:(r) => r._measurement == "my_measurement")\
|> filter(fn: (r) => r.location == "Prague")\
|> filter(fn:(r) => r._field == "temperature" )‘
result = query_api.query(org=org, query=query)
results = []
for table in result:
for record in table.records:
results.append((record.get_field(), record.get_value()))
For more information, see the Python client README on GitHub.