<?xml version="1.0" encoding="utf-8"?> 
<rss version="2.0"
  xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
  xmlns:atom="http://www.w3.org/2005/Atom">

<channel>

<title>Математик среди биологов: заметки с тегом json</title>
<link>https://antonlyakh.ru/blog/tags/json/</link>
<description>Я немного умею складывать, но от вычитания у меня всегда кружится голова</description>
<author>Антон Лях</author>
<language>ru</language>
<generator>E2 (v3559; Aegea)</generator>

<itunes:owner>
<itunes:name>Антон Лях</itunes:name>
<itunes:email></itunes:email>
</itunes:owner>
<itunes:subtitle>Я немного умею складывать, но от вычитания у меня всегда кружится голова</itunes:subtitle>
<itunes:image href="" />
<itunes:explicit></itunes:explicit>

<item>
<title>Список родов диатомовых. 2/n</title>
<guid isPermaLink="false">511</guid>
<link>https://antonlyakh.ru/blog/all/spisok-rodov-diatomovyh-2-n/</link>
<pubDate>Wed, 12 Mar 2025 20:47:26 +0300</pubDate>
<author>Антон Лях</author>
<comments>https://antonlyakh.ru/blog/all/spisok-rodov-diatomovyh-2-n/</comments>
<description>
&lt;p&gt;&lt;a href="https://antonlyakh.ru/blog/all/spisok-rodov-diatomovyh-1-n/"&gt;В прошлый раз мы выяснили&lt;/a&gt;, что список родов диатомовых можно извлечь из &lt;a href="marinespecies.org"&gt;Вормса&lt;/a&gt;, если уметь немного программировать. Рассказываю, что из этого получилось.&lt;/p&gt;
&lt;p&gt;После борьбы с сервером Вормса и поиском наиболее оптимального способа получения данных, мне удалось собрать номенклатурную информацию о 1375 родах диатомовых водорослей.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://antonlyakh.ru/blog/pictures/list-of-diatoms-genera--v01.png" width="502" height="624" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;Часть из них невалидна, то есть относится к ошибочным, неверно описанным или синонимичным названиям.&lt;/p&gt;
&lt;h2&gt;Номенклатура в JSON&lt;/h2&gt;
&lt;p&gt;Информацию о каждом таксоне Вормс возвращает в json-файле. В том числе файл содержит  номенклатурные данные о высших таксонах рода. То есть у каждого рода (и любого другого таксона) указано его положение в таксономическом дереве.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://antonlyakh.ru/blog/pictures/worms-json-taxon.png" width="502" height="420" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;Поэтому json-файл с данными о таксоне является самодостаточным: он не зависит от других файлов и содержит достаточно номенклатурных данных для определения названия, статуса и положения таксона в иерархическом древе. То есть json-файл это отдельная полноценная запись таксономической базы данных.&lt;/p&gt;
&lt;p&gt;Остается преобразовать полученные json-файлы в работоспособную базу.&lt;/p&gt;
&lt;h2&gt;JSON → Эксель&lt;/h2&gt;
&lt;p&gt;Данные о роде мы можем сохранить в виде строки текста, в которой значимые элементы отделены символом-разделителем. В качестве разделителя используем точку с запятой.&lt;/p&gt;
&lt;p&gt;В таком виде хранятся данные в csv файлах, которые умеет открывать Эксель. Поэтому, из всех собранных номенклатурных данных, мы можем сформировать многострочный csv-файл, в котором каждая строка будет соответствовать одному роду. Эксель сумеет его открыть и предоставит инструменты для фильтрации и выбора необходимых сведений. Простая номенклатурная база в Экселе будет работать (и смотреться) хорошо.&lt;/p&gt;
&lt;p&gt;Но Эксель мы не сможем нормально использовать на сервере. Поэтому для доступа к данным в вебе потребуется настоящая СУБД.&lt;/p&gt;
</description>
</item>

<item>
<title>Очень кратко о JSON Lines</title>
<guid isPermaLink="false">491</guid>
<link>https://antonlyakh.ru/blog/all/ochen-kratko-o-json-lines/</link>
<pubDate>Sat, 13 Apr 2024 16:45:34 +0300</pubDate>
<author>Антон Лях</author>
<comments>https://antonlyakh.ru/blog/all/ochen-kratko-o-json-lines/</comments>
<description>
&lt;p&gt;&lt;a href="https://jsonlines.org/"&gt;jsonlines.org&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;abbr&gt;Джисон-лайнс&lt;/abbr&gt; состоит из строк, разделенных символом новой строки &lt;kbd&gt;\n&lt;/kbd&gt;.&lt;/p&gt;
&lt;p&gt;Каждая строка является отдельным объектом &lt;abbr&gt;джисон&lt;/abbr&gt;.&lt;/p&gt;
&lt;p&gt;&lt;big&gt;&lt;b&gt;&lt;abbr&gt;Джисон-лайнс&lt;/abbr&gt; можно обрабатывать построчно&lt;/b&gt;,&lt;/big&gt;&lt;br/&gt;это основное достоинство формата.&lt;/big&gt;&lt;/p&gt;
&lt;p&gt;&lt;kbd&gt;jsonl&lt;/kbd&gt; — расширение файлов &lt;abbr&gt;джисон-лайнс&lt;/abbr&gt;.&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;&lt;/p&gt;
&lt;h4&gt;JSON&lt;/h4&gt;
&lt;p&gt;Один файл — один объект; каждая строка — элемент этого объекта; пока не загрузится весь файл, доступа к строкам не будет.&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;[
  {&amp;quot;id&amp;quot;: 1, &amp;quot;position&amp;quot;: [{&amp;quot;x&amp;quot;: 17, &amp;quot;y&amp;quot;: 256}], &amp;quot;status&amp;quot;: &amp;quot;grow&amp;quot;},
  {&amp;quot;id&amp;quot;: 2, &amp;quot;position&amp;quot;: [{&amp;quot;x&amp;quot;: 78, &amp;quot;y&amp;quot;: 341}], &amp;quot;status&amp;quot;: &amp;quot;sleep&amp;quot;},
  {&amp;quot;id&amp;quot;: 3, &amp;quot;position&amp;quot;: [{&amp;quot;x&amp;quot;: 45, &amp;quot;y&amp;quot;: 650}], &amp;quot;status&amp;quot;: &amp;quot;moved&amp;quot;},
  ...
]&lt;/code&gt;&lt;/pre&gt;&lt;h4&gt;JSON Lines&lt;/h4&gt;
&lt;p&gt;Каждая строка — отдельный объект &lt;abbr&gt;джисон&lt;/abbr&gt;; можем читать файл построчно.&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;{&amp;quot;id&amp;quot;: 1, &amp;quot;position&amp;quot;: [{&amp;quot;x&amp;quot;: 17, &amp;quot;y&amp;quot;: 256}], &amp;quot;status&amp;quot;: &amp;quot;grow&amp;quot;},
{&amp;quot;id&amp;quot;: 2, &amp;quot;position&amp;quot;: [{&amp;quot;x&amp;quot;: 78, &amp;quot;y&amp;quot;: 341}], &amp;quot;status&amp;quot;: &amp;quot;sleep&amp;quot;},
{&amp;quot;id&amp;quot;: 3, &amp;quot;position&amp;quot;: [{&amp;quot;x&amp;quot;: 45, &amp;quot;y&amp;quot;: 650}], &amp;quot;status&amp;quot;: &amp;quot;moved&amp;quot;},
...&lt;/code&gt;&lt;/pre&gt;</description>
</item>


</channel>
</rss>