Use the influxdb package to batch insert data in csv into the influxdb database

1. Install related packages

pip install influxdb==5.3.1
pip install pandas==1.1.3

2. Specific code
First prepare a csv data file and name it test.csv
The script will insert the data in csv into the influxdb database in batches

import csv
from influxdb import InfluxDBClient
import os
import json
import time
import datetime

def main():
	# 连接influxdb数据库
    client = InfluxDBClient('127.0.0.1', 8086)
    # 创建一个数据库
    client.create_database('test')
    client.switch_database('test')
    csv_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'test.csv')
    json_body = []
    with open(csv_path, 'r') as f:
    	# 读第一行为字段列表容器
        headers = f.readline()
        for line in f.readlines():
        	# 构造要写入的dict
            fields = {
    
    headers.split(',')[i].strip(): line.split(',')[i].strip() for i in range(len(headers.split(',')))}
            # time.sleep(0.1)
            json_dic = {
    
    
                "measurement": "test_table",
                "tags":None,
                "time": datetime.datetime.utcnow(),
                "fields": fields
            }
            json_body.append(json_dic)
    client.write_points(json_body)
if __name__ == '__main__':
    main()

Guess you like

Origin blog.csdn.net/haeasringnar/article/details/111995435