Форум программистов, компьютерный форум, киберфорум
Python: Сети
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 24.06.2016
Сообщений: 2

Python пихаем csv файл в Influxdb

16.05.2018, 16:18. Показов 1639. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вопрос к знатокам, да и в целом кто может помочь.
при запуске возникает ошибка
line not save
string indices must be integers, not str
Видимо я сильно туплю, но не могу вдуплить в чем проблема

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
import argparse
import csv
import os
from influxdb import InfluxDBClient
import zipfile
import itertools
 
 
 
PATH = '.\\....zip'
MEASUREMENT = 'all'
TAGS = ('name','form_id')
FIELDS = {'reqh':int, 'users':int,}
DELIMIIER = ';'
 
client = InfluxDBClient(host='...', port=8086, username='...', password='....', database='....')
 
def translate_label(a):
    if 'NFLX query email password' in a['name']:
        return None
    if 'Set Start Annotation' in a['name']:
        return None
    if 'STS ADD message_id.csv' in a['name']:
        return None
    if 'STS READ' in a['name']:
        return None
    a['name'] = a['name'].replace('<_','').strip('-').strip('.').strip()
    #a['responseMessage'] = a['responseMessage'].replace('Non HTTP response code: ','')
    return a
 
 
def dict2db(ln, project_name, tags, fields):
    json_body = {
            'measurement': MEASUREMENT,
            'tags': dict([(t,ln.get(t,'')) for t in tags]),
            'time': ln.get('timeStamp','0'),
            'fields': dict([(f, fields[1][f](ln.get(f,'0'))) for f in fields])
    }
    return json_body
def import_db(path2file, project_name_tbl, tags, fields, chunk = 10000, translate_label={}):
    
   
    counter = 0
    lst = []
    if zipfile.is_zipfile(path2file):
        zp = zipfile.ZipFile(path2file, mode='r')
        memberlist = [fn for fn in zp.namelist() if not fn.endswith('/') ]
        for name_file in memberlist:
            if not name_file.endswith('.csv'):
                continue
            with zp.open(name_file, 'r') as csvfile:
                reader = csv.DictReader(csvfile, delimiter=DELIMIIER)
                
                for i, val in enumerate(reader):
                    try:
                        val = translate_label(val)
                        if val is None:
                            continue
 
                        val['timeStamp'] = i
                    
                        lst.append(dict2db(val, project_name_tbl, tags, fields))
                    except Exception as e:
                        print ('line not save')
                        print (val)
                        print (e)
                        print ("+"*40)
                    counter+=1
                    # заливаем файл в базу частями, т.к. построчно - это очень долго, а весь файл целом 
                    if counter%chunk == 0:
                        client.write_points(lst)
                        lst = []
                        print ('.'),
        # заливаем последную часть данных
        if lst !=[] :
            client.write_points(lst)
            lst = []
            print ('the end')
            print (counter)
 
 
import_db(PATH, MEASUREMENT, FIELDS, TAGS, chunk = 1000, translate_label=translate_label)
 
print 'Done'
 
from os import system
system("pause")
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.05.2018, 16:18
Ответы с готовыми решениями:

Анализ данных в Python, CSV файл
Есть такой код который я сама написала, и CSV файл(который я не могу прикрепить сюда как CSV) с данными об использовании велодорожек.Файл...

Чтение COM порта на python и сохранение данных в csv файл
Добрый день. К ардуино подключен акселерометр, используется COM3. В мониторе порта выводятся данные по трем осям. Теперь пытаюсь...

Вам доступен csv файл data.csv, содержащий информацию в csv формате.Напишите функцию read_csv для чтения данных из файла
Вам доступен CSV-файл data.csv, содержащий информацию в csv формате. Напишите функцию read_csv для чтения данных из этого файла. Она должна...

1
Эксперт Python
 Аватар для dondublon
4653 / 2073 / 366
Регистрация: 17.03.2012
Сообщений: 10,183
Записей в блоге: 6
16.05.2018, 17:54
FalseHas, вроде ясно написано.
Пытаетесь взять у строки нечто по строковому индексу. Сие не имеет смысла, только integer.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.05.2018, 17:54
Помогаю со студенческими работами здесь

Программирование на python Как в файл csv преобразовать в цисленный тип?
Как в файл csv преобразовать в цисленный тип? import csv import pandas as pd import numpy as np

Как вывести пиксели всех картинок в csv файл через python
я хочу картинки перевести в пиксели. я делаю так from PIL import Image im = Image.open('image.jpg') pixels = list(im.getdata())...

Python.csv.library создать функции удаления и редактирования данных о книге, хранящихся в csv
консольный интерфейс предполагает нажатие 1-5 клавиш со следующим функционалом: 1 - выводит список книг 2 - добавляет данные о новой...

Поиск строк с нужным словом в файле .csv и перезапись этих строк в новый файл Python
Добрый день. Господа программисты, нужна Ваша помощь. Возникла необходимость написать программный код на языке Python, но я 2 года...

Запись в CSV-файл из массива. Не является форматом csv!
В общем искал работу... Дали тестовое написать парсер для сайта с выводом информации в csv-файл. Всё написал, сбросил, пришёл ответ что у...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru