LINUX.ORG.RU

3
Всего сообщений: 43

Альтернатива Last.fm, с возможностью импорта даты из last.fm или csv и скробблером под андроид

Сабж.

Проблема в том, что слушаю 99% времени музыку со смартфона и официальный или simple last fm scrobbler не распознают, когда у меня трек на повторе. А я так слушаю очень часто. В итоге в статистике должно быть около 100 прослушиваний, а записано одно.

Плееры: poweramp, jetaudio+

 , , ,

tne ()

json array в csv

Всем привет.

Есть у меня json, примерно вида:

{
    "Array1": [
            {
                "key1": "some string",
                "key2": "another string",
                "Array2": [
                    {
                        "key3": "int",
                        "Array3": [],
                        "Array4": [],
                        "Array5": [],
                        "Array6": [
                            {
                                "key4": "one more string",
                                "key5": "last string"
                            }
                        ]
                    }
                ]
            }
        ]
}

Сейчас я забираю с такого json только значения key1 и key2 при помощи jq и формирую csv примерно так

cat tmpl.jq

.Array1[]|{
    "One":.key1,
    "Two":.key2
}|join("&")

После чего могу открыть данную csv и получить красивый spreadsheet разбив по &. Получается два столбика со значениями.

Теперь я хочу добавить третий столбец, но с содержимым всего Array2, со всеми значениями и массивами внутри. Так что бы в spreadsheet у меня все содержимое Array2 умещалось в одну ячейку.

Таким образом я хочу получить нечто подобное:

|---------------------|---------------------|--------------------------------------------|
|         One         |         Two         |                     Three                  |
|---------------------|---------------------|--------------------------------------------|
| some string         | another string      | {                                          |
|                     |                     | "key3": "int",                             |
|                     |                     | "Array3": [],                              |
|                     |                     | "Array4": [],                              |
|                     |                     | "Array5": [],                              |
|                     |                     | "Array6": [                                |
|                     |                     |     {                                      |
|                     |                     |         "key4": "one more string",         |
|                     |                     |         "key5": "last string"              |
|                     |                     |     }                                      |
|                     |                     | ]                                          |
|                     |                     |}                                           |
|---------------------|---------------------|--------------------------------------------|
Можно ли как-то это сделать красиво?

Спасибо.

 , , , ,

Linuxman ()

Конвертор VCF (VCARD)<->CSV: есть ли такой?

Привет

Задумал написать конвертор списка контактов в CSV и обратно. Но решил проверить: не велосипед ли?

Есть уже софт, который нормально делает конвертацию VCF в CSV и обратно?

 ,

Kroz ()

Как итерировать через CSV файл содержащий запятую внутри?

Т.е.

foo,"bar,baz"

Дефолтный CSV-парсер по строчкам с IFS=, парсит, очевидно, некорректно.

 ,

letni ()

округление чисел при импорте из .csv

Снова я со своими проблемами.

Есть .csv файл:

;;G;59.942;;k;R;cp;$\xi$;1.06;1.05;1.03;1.01;1;0.95;0.9
p;344464;T;425.93;;1.4;287.037;1004.5;$H_{zi}$;48610;48151;47234;46317;45858;43565;41272
?;0.865;?;5.758;;;;;$\eta_i$;0.9;0.889;0.888;0.887;0.886;0.885;0.884
z;7;;;;;;;$T_{02i}$;474.3220683;522.2576077;569.2800891;615.3895127;661.0424073;704.4126572;745.5002624
Hz;321008;;;;;;;$\pi_i$;1.4060;1.3514;1.3089;1.2749;1.2496;1.2184;1.1924
Hzcp;45858;45858;45858;45858;45858;45858;45858;$T_{1i}$;425.93;474.3220683;522.2576077;569.2800891;615.3895127;661.0424073;704.4126572

Выглядит нечитабельно, но импортируется нормально следующей командой:

raspredel <- read.csv(file="raspredel.csv", sep=';', header=F, encoding = "cp1251", nrows = 6)[ ,9:16]
         V9        V10        V11        V12        V13        V14        V15        V16
1    $\\xi$     1.0600     1.0500     1.0300     1.0100     1.0000     0.9500     0.9000
2  $H_{zi}$ 48610.0000 48151.0000 47234.0000 46317.0000 45858.0000 43565.0000 41272.0000
3 $\\eta_i$     0.9000     0.8890     0.8880     0.8870     0.8860     0.8850     0.8840
4 $T_{02i}$   474.3221   522.2576   569.2801   615.3895   661.0424   704.4127   745.5003
5  $\\pi_i$     1.4060     1.3514     1.3089     1.2749     1.2496     1.2184     1.1924
6  $T_{1i}$   425.9300   474.3221   522.2576   569.2801   615.3895   661.0424   704.4127

Нужно округлить числа так, чтобы после целых чисел не добавлялось нулей.

Нагуглил вот такой вариант решения:

raspredel <- read.csv(file="raspredel.csv", sep=';', header=F, encoding = "cp1251", nrows = 6)[ ,10:16]
raspreel1 <- data.frame(
  formatC(as.numeric(raspredel), format="f", digits=2, drop0trailing = TRUE),
  c("1", "2", "3", "4", "5", "6")
)

В ответ получаю ошибку

Error in formatC(as.numeric(raspredel), format = «f», digits = 2, drop0trailing = TRUE) : 
  (list) object cannot be coerced to type 'double'

Пробую сделать так:

raspredel <- read.csv(file="raspredel.csv", sep=';', header=F, encoding = "cp1251", nrows = 6, strip.white = TRUE, stringsAsFactors = FALSE, dec = ".")[ ,10:16]
raspreel1 <- data.frame(
  formatC(as.numeric(raspredel), format="f", digits=2, drop0trailing = TRUE),
  c("1", "2", "3", "4", "5", "6")
)

Получаю ту же ошибку.

Подскажите, пожалуйста, ЧЯДНТ?

 , , ,

Deleted ()

Разбор, в csv

Есть текстовый файл в таком виде:

Адрес: АдресГлоб1_2
Фамилия1_1 Имя1_1 Отчество1_1;Адрес1_1;ДР1_1
Фамилия1_2 Имя1_2 Отчество1_2;Адрес1_2;ДР1_2
Адрес: АдресГлоб2_4
Фамилия2_1 Имя2_1 Отчество2_1;Адрес2_1;ДР2_1
Фамилия2_2 Имя2_2 Отчество2_2;Адрес2_2;ДР2_2
Фамилия2_3 Имя2_3 Отчество2_3;Адрес2_3;ДР2_3
Фамилия2_4 Имя2_4 Отчество2_4;Адрес2_4;ДР2_4
Адрес: АдресГлоб3_3
Фамилия3_1 Имя3_1 Отчество3_1;Адрес3_1;ДР3_1
Фамилия3_2 Имя3_2 Отчество3_2;Адрес3_2;ДР3_2
Фамилия3_3 Имя3_3 Отчество3_3;Адрес3_3;ДР3_3
Неодходимо получить текстовый файл в таком виде (csv):


АдресГлоб;ФИО;Адрес;ДР
АдресГлоб1_2;Фамилия1_1 Имя1_1 Отчество1_1;Адрес1_1;ДР1_1
АдресГлоб1_2;Фамилия1_2 Имя1_2 Отчество1_2;Адрес1_2;ДР1_2

 ,

tosick4 ()

Экспорт данных из запроса MYSQL в файл. Лишние символы

Всем привет! Решаю задачу по автоматической выгрузке данных из запроса в csv файл. Запрос сделал, все ок... Кроме лишних символов. Сам запрос:

SELECT IFNULL(`realname_ru`, account.name ), user.name, account.name,`email`,REPLACE(REPLACE(phone, "(", ""), ")", ""),`note` FROM `user`,`account` WHERE user.account=account.id AND
`phone`!=0 INTO OUTFILE '/home/COV/csv/book.csv' character set cp1251 FIELDS TERMINATED BY ';' LINES STARTING BY '' TERMINATED BY '\r\n';
Нормальная выгрузка из phpmyadmin (в кодировке 1251, NULL заменяем на «Отсутвует») http://joxi.ru/Dr8550zi4Db4Em Выгрузка курильщика(т.е. что получается по моему запросу): http://joxi.ru/823PP1GiJwB9QA В итоге есть следующие проблемы:

  • Пропущенные строки после каждой строки
  • Если в последнем столбце строки есть слова с переносом - они формируются в первом столбце строки ниже
  • Там где нет данных ставится \N
  • В последнем столбце строки появляется \

Прошу подсказать :) Спасибо!

 ,

zukc ()

Zapret-Info/dump.csv - появились непонятные строки

Из свежего дампа:

...
95.85.44.163;;;суд;2-946/13;2013-06-10
97.77.104.22;;;суд;2-946/13;2013-06-10
HASH(0x8282d1b28);52.237.222.222;http:// 52.237.222.222;Генпрокуратура;27-31-2018/;2018-04-16
HASH(0x8282d1438);52.237.238.204;http:// 52.237.238.204;Генпрокуратура;27-31-2018/;2018-04-16
154.16.230.33;*.00834c.olimp1a50.top;;ФНС;2-6-27/115;2015-11-23
154.16.230.26;*.00eed0.olimpe24a.top;;ФНС;2-6-27/115;2015-11-23
...
Что такое HASH(...)?

По идее формат везде такой: «список IP;список доменов;список URL;запретившая организация;ID документа;дата документа».

 , ,

mironov_ivan ()

Хелп! Забыл, как заставить csv.writer не с...ть в память, а сразу писать на диск

Здравствуйте.
Чё-то опять понадобилось поскрапить и записать в csv, но вот не помню, вроде раньше был метод заставить не жрать гиги памяти, а сразу писать на диск, без танцев гопака вприсядку...
Или я с xlsxwriter'ом путаю?

 ,

Shadow ()

Чем просматривать и фильтровать CSV?

В принципе LibreOffice Calc показывает нормально, но фильтр неудобный, нужно всё мышкой нажимать, когда мне нужно искать по условию substr1% AND substr2%, а затем опять нажимать мышкой, когда нужно искать просто substr1%

Еще попробовал в терминале

column -t -s";" source.csv | grep -i -e 'substr1' -e 'substr2'

Но оно работает по паттерну substr1% OR substr2%, можно как-то сделать AND не наворачивая кучу ключей? Сейчас дошло, что можно так:

column -t -s";" source.csv | grep -i -e 'substr1%' | grep -i -e 'substr2%'

Но в идеале подошла бы легкая GUI софтина.

 , ,

foror ()

awk - Удаление «дубликатов» строк в csv файле, при совпадении нескольких полей.

Не могу сообразить, как бы это реализовать на awk...

Есть csv файл с содержимым:

1;500;01.01.1980;Иванов;Иван;Иванович
2;350;02.02.1985;Петров;Петр;Петрович
3;400;01.01.1980;Иванов;Иван;Иванович
4;200;05.07.1990;Сидоров;Сидор;Сидорович
5;150;05.07.1990;Сидоров;Сидор;Сидорович

Необходимо удалить дубли «строк» по колонкам ДР и ФИО, т.е. оставить только первое уникальное вхождение строки с этими колонками, а остальные удалять без оглядки на первые две колонки, на выходе должно получиться:

1;500;01.01.1980;Иванов;Иван;Иванович
2;350;02.02.1985;Петров;Петр;Петрович
4;200;05.07.1990;Сидоров;Сидор;Сидорович

 ,

karasic ()

Утилита подстветки изменений значений от строки к строке

День добрый.

Есть текстовый лог в формате CSV.

В столбцах — счетчики (в том числе времени), показания от датчиков, идентификаторы состояний в виде одной буквы.
(Очевидно, очень похоже на NMEA).

Все значения обычно (но не всегда) либо монотонно растут (счетчики), либо незначительно колеблются вокруг какой-то константы (датчики).

Есть ли такая готовая утилита, которая бы подсветила разницу между строками,
да так, что если значение изменилось незначительно, то подсветила бы бледно/зеленым/etc,
а если значение изменилось значительно, то ярко/красным/etc.

В идеале, если катать губу, утилита вообще должна понимать поведение полей по статистике, например,
«ага, обычно этот счетчик растет раз в 5 строк, а здесь не растет уже 6 строк, надо подсветить красным сей факт».

 , , ,

Tayler ()

Выбор бд\формата хранения информации

Есть у меня тузла, с помощью которой я храню всякие заметки. С тегированием информации. На pickle + gzip. 703 записи занимает:

du -sh data.txt.gz
out:
52K     data.txt.gz

Думаю переписать тузлу с нуля(учитывая ошибки, которые допустил). Вот сижу и думаю, какой использовать формат данных. С одной стороны sqlite - было бы неплохо. Выборки там и тд. С другой стороны тот же csv очень удобно открывается тем же опенофисом. Можно легко подрихтовать то, что нужно. Основной кретерий: удобное хранение информации и выгрузка в битбакет. Что посоветуете ?

 , ,

bryak ()

Правильный формат для адресной книги в 2017

Всем доброго времени суток.

Какой формат является наиболее актуальным на данный момент для экспорта и резервного копирования адресной книги?

NextCloud дает скачать в VCF, Google предлагает VCF или два разных варианта CVS.

VCF, насколько я понимаю, должен поддерживать фото, но у меня почему-то без фото экспортируются.

И еще, чтобы лишнюю тему не создавать, подскажите, Android устройства синхронизируют контакты и календарь с Google через *dav или там свой протокол?

 , , , ,

aquadon ()

Ищу новость про совместную научную работу/книгу, которую писали в какой-то vcs (git, svn etc.)

Сабж, не могу найти.

Там говорилось о том, что совместная работа в vcs помогла очень быстро завершить работу.

 , , , ,

ErasimHolmogorin ()

LibreOffice Calc коверкает документ при конвертации xlsx => csv

Всем добра!)

Подготовил таблицу для импорта, однако после конвертирования в csv все ячейки сбиваются к черту. Ранее никогда таких проблем не было, как разделители использую символы которых точно нет в тексте.

Не в курсе ли кто, отчего такое может происходить? Возможно имеются какие-то ограничения, например, по количеству символов в ячейках csv? Или в них может не должны использоваться спец. символы? Больше возможных причин в упор не вижу, но гугл ничего не дал(

Заранее спасибо.

 , , , ,

nadim ()

Сравнение столбцов таблицы

Добрый день. В man по diff не обнаружил следующей возможности: Пример Есть таблица 1.csv

1 5 5 5

2 6 7 5

3 7 9 9

4 8 12 12

Как можно сравнить 3 и 4 column средствами командной строки или bash скриптом? Пробовал diff совместно с | awk, но не выходит( В инете и на форумах (в том числе и на этом) есть примеры сравнения двух текстовых файлов, но не двух столбцов одной таблицы. Вывод сравнения необходимо true/false. Буду благодарен за совет или пример.

 , ,

Binster ()

Не могу загрузить данные в csv-файл

import requests
from bs4 import BeautifulSoup
import csv

url = "http://www.ilife.if.ua/show_cat.php?catid=21675&grid=1154"
r = requests.get(url)

soup = BeautifulSoup(r.content, 'html.parser')

phone_name = soup.find_all("a", attrs={"class": "tov"})

list_of = []
for item in phone_name:
    name = item.text
    print name
    list_of.append(name)
    
with open('index.csv', 'w') as csv_file:
    writer = csv.writer(csv_file)
    writer.writerow(name)  
   
print list_of

Перемещено leave из web-development

 ,

kindix ()

Ищу скрипт CSV->ASCII

Приветик!

Хотел бы разобраться со следующим вопросом.

У меня, скажем, есть исходный CSV-файл (2 столбца, прибл. 10 строк, ";"-сепарированный). Я хотел бы преобразовать его в простую аски таблицу с разделителями. Условие такое, что нужно иметь возможность задавать ширину этих двух столбцов в целевой таблице (строки длиннее, чем хотелось бы). Может есть какой-то скрипт в свободном пробеге?

 , ,

forest22 ()

обработка csv файлов bash

есть файл с таким текстом :

>-oper-29
>*Linux
>/Intel(R) Celeron(R) CPU G1620 @ 2.70GHz
>+ 2.70GHz
>$1,6G 1,2G 385M 136M 67M 390M
>!sda 8:0 0 298,1G 0 disk

и есть csv файл :

Хостнейм ОС Проц Частота Проца Оператива Жесткий  

Нужно вытащить из первого файла данные и поместить в нужный столбец , вытащить не проблема , хоть grep хоть awk а вот записать это для меня вообще дичь , искал в гугле , с помощью awk нет инфы о запись вообще (походу он таким не занимается) что по советуете ? какие есть консольные утилиты для такого ? пытался использовать eсho но оно чудеса выдает ...зарание спасибо!!!=)

 , , ,

echo_ ()