# Internet - Importformate

Die Importformate beschreiben die genaue Formatierung der Zieldaten die aus einer Internetadresse/-quelle gezogen worden sind. Dabei wird zwischen CSV-Datenformaten und JSON-Datenformaten unterschieden. Entsprechend werden zwei verschiedene Reiter hierfür angezeigt.

siehe für den Gesamtzusammenhang unter [Internetadressen - und Variablen](https://shareholder.atlassian.net/wiki/spaces/SHARPUB/pages/1605511/Internetadressen+-+und+Variablen)

## CSV-Format-Beschreibungen

Die CSV-Formatbeschreibungen geben einfach die Spalten-Position auf Basis der mit dem Trennzeichen aufgeteilten Informationen wieder.

[![image-1655733997002.png](https://www.shareholder24.com/wiki/uploads/images/gallery/2022-06/scaled-1680-/image-1655733997002.png)](https://www.shareholder24.com/wiki/uploads/images/gallery/2022-06/image-1655733997002.png)

## Suchkennung

Da Kursdaten oftmals in Kurslisten zurückgegeben werden, die nicht identisch in der Reihenfolge der Abfrage vorliegen, muss eine Zuordnung der Daten zu den abgefragten Kurswerten vorgenommen werden.

Für die Suchkennung können verschiedene Variablen genutzt werden:

<div class="table-wrap" id="bkmrk-variable-%7Bwkn%7D-%7Bname"><table class="relative-table wrapped confluenceTable tablesorter tablesorter-default" role="grid"><colgroup><col></col></colgroup><thead><tr class="tablesorter-headerRow" role="row"><th aria-disabled="false" aria-label="Variable: No sort applied, activate to apply an ascending sort" aria-sort="none" class="confluenceTh tablesorter-header sortableHeader tablesorter-headerUnSorted" data-column="0" role="columnheader" scope="col" tabindex="0"><div class="tablesorter-header-inner">Variable</div></th></tr></thead><tbody aria-live="polite" aria-relevant="all"><tr role="row"><td class="confluenceTd">{WKN}</td></tr><tr role="row"><td class="confluenceTd" colspan="1">{NAME}</td></tr><tr role="row"><td class="confluenceTd" colspan="1">{ISIN}</td></tr><tr role="row"><td class="confluenceTd" colspan="1">{BRANCHE}</td></tr><tr role="row"><td class="confluenceTd" colspan="1">{LAND}</td></tr><tr role="row"><td class="confluenceTd" colspan="1">{BEREICH}</td></tr><tr role="row"><td class="confluenceTd" colspan="1">Alle definierten Aktien-Variablen</td></tr></tbody></table>

</div>Da diese Angaben teilweise ergänzt sind durch unnötige Angaben sind einschließende Angaben (Präfix, Postfix) erlaubt z.B. "{WKN}." für Daten in der Form "620378.FX;01/01/2001;4.3" wäre ein "{WKN}." für die Suchkennung somit ausreichend da hier nur eine Teilsuche gemacht wird. Dabei wird die Suchvariable in den geschweiften Klammern gebildet und der Präfix und das Postfix gesucht.

Beispiel für eine Strukturliste, die einen entsprechenden Import erlaubt: "{Yahoo.Symbol.\[isin\]};{NAME};{BRANCHE};{BEREICH};{LAND}"

## Datumsformate

<div class="table-wrap" id="bkmrk-beschreibung-details"><table class="wrapped confluenceTable tablesorter tablesorter-default" role="grid"><colgroup><col></col><col></col></colgroup><thead><tr class="tablesorter-headerRow" role="row"><th aria-disabled="false" aria-label="Beschreibung: No sort applied, activate to apply an ascending sort" aria-sort="none" class="confluenceTh tablesorter-header sortableHeader tablesorter-headerUnSorted" data-column="0" role="columnheader" scope="col" tabindex="0"><div class="tablesorter-header-inner">Beschreibung</div></th><th aria-disabled="false" aria-label="Details und Beispiele: No sort applied, activate to apply an ascending sort" aria-sort="none" class="confluenceTh tablesorter-header sortableHeader tablesorter-headerUnSorted" data-column="1" role="columnheader" scope="col" tabindex="0"><div class="tablesorter-header-inner">Details und Beispiele</div></th></tr></thead><tbody aria-live="polite" aria-relevant="all"><tr role="row"><td class="confluenceTd">Y\* | YY | YYYY - Jahr

M\* | MM - Monatsangaben

D\* | DD - Tag des Monats

</td><td class="confluenceTd">- Y\*-M\*-D\*
- YYYY-MM-DD
- M\*/D\*/Y\*
- --:-- D\*.M\*.Y\*

</td></tr><tr role="row"><td class="confluenceTd" colspan="1">Spezialausprägung: {DATE}</td><td class="confluenceTd" colspan="1">Als Platzhalter ist {DATE} erlaubt, wenn immer das aktuelle Basisdatum angenommen werden soll.</td></tr><tr role="row"><td class="confluenceTd" colspan="1">Spezialausprägung: {NOW:HH:MM} bzw. nur {NOW}</td><td class="confluenceTd" colspan="1">z.B. {NOW:20:00} d.h. es wird der heutige Tag mit Uhrzeit 20:00 Uhr angenommen</td></tr><tr role="row"><td class="confluenceTd" colspan="1">Spezialausprägung: {UNIX-TIMESTAMP}</td><td class="confluenceTd" colspan="1">UNIX Timestamp</td></tr><tr role="row"><td class="confluenceTd" colspan="1">Spezialausprägung: {UNIX-TIMESTAMP-IN-MS}</td><td class="confluenceTd" colspan="1">UNIX-Timestamp in Millisekunden</td></tr></tbody></table>

</div>## Zeitformate

<div class="table-wrap" id="bkmrk-beschreibung-details-0"><table class="wrapped confluenceTable tablesorter tablesorter-default" role="grid"><colgroup><col></col><col></col></colgroup><thead><tr class="tablesorter-headerRow" role="row"><th aria-disabled="false" aria-label="Beschreibung: No sort applied, activate to apply an ascending sort" aria-sort="none" class="confluenceTh tablesorter-header sortableHeader tablesorter-headerUnSorted" data-column="0" role="columnheader" scope="col" tabindex="0"><div class="tablesorter-header-inner">Beschreibung</div></th><th aria-disabled="false" aria-label="Details und Beispiele: No sort applied, activate to apply an ascending sort" aria-sort="none" class="confluenceTh tablesorter-header sortableHeader tablesorter-headerUnSorted" data-column="1" role="columnheader" scope="col" tabindex="0"><div class="tablesorter-header-inner">Details und Beispiele</div></th></tr></thead><tbody aria-live="polite" aria-relevant="all"><tr role="row"><td class="confluenceTd" colspan="1">HH - Stunde

MM- Minuten

SS - Sekunden

</td><td class="confluenceTd" colspan="1">- HH:MM
- HH:MM:SS

</td></tr><tr role="row"><td class="confluenceTd" colspan="1">Spezialausprägung: {NOW:&lt;Uhrzeit&gt;}</td><td class="confluenceTd" colspan="1">Aktueller Tag mit einer festgelegten Uhrzeit z.B.

- {NOW:20:00}
- {NOW}

</td></tr></tbody></table>

</div>## Weitere Felder und Erklärungen

<div class="table-wrap" id="bkmrk-feld-bezeichnung-hin"><table class="wrapped confluenceTable tablesorter tablesorter-default" role="grid"><colgroup><col></col><col></col></colgroup><thead><tr class="tablesorter-headerRow" role="row"><th aria-disabled="false" aria-label="Feld-Bezeichnung: No sort applied, activate to apply an ascending sort" aria-sort="none" class="confluenceTh tablesorter-header sortableHeader tablesorter-headerUnSorted" data-column="0" role="columnheader" scope="col" tabindex="0"><div class="tablesorter-header-inner">Feld-Bezeichnung</div></th><th aria-disabled="false" aria-label="Hinweise und Details: No sort applied, activate to apply an ascending sort" aria-sort="none" class="confluenceTh tablesorter-header sortableHeader tablesorter-headerUnSorted" data-column="1" role="columnheader" scope="col" tabindex="0"><div class="tablesorter-header-inner">Hinweise und Details</div></th></tr></thead><tbody aria-live="polite" aria-relevant="all"><tr role="row"><td class="confluenceTd">Eingabefeld: "Ersetzen"</td><td class="confluenceTd">Die hier eingegebene Zeichenkette wird in jeder Zeile vor der Interpretation herausgelöscht! Dabei können mehrere Einträge mit einem Pipe-Symbol getrennt werden "|".

- Beispiel "WKN:|Geld:|Brief:|Zeit:|ISIN:|Vol.:|Datum:|". Hier wird hintereinander pro Zeile WKN: dann Geld: usw. ersetzt.

</td></tr><tr role="row"><td class="confluenceTd">Eingabefeld: "Zeitverschiebung"</td><td class="confluenceTd">Mittels dieser Eingabe kann die Ergebnismenge automatisch um X Stunden verschoben werden. Dies sollte nur in Ausnahmen genutzt werden, wenn der Datenlieferant die Daten fehlerhaft liefert.</td></tr></tbody></table>

</div>## JSON-Format-Beschreibungen

Für das JSON-Format müssen separate Beschreibungen vorgenommen werden. Dabei werden JSON-Path-Informationen beschrieben.

Hierzu nachfolgend ein Beispiel von Polygon. Hierbei wird mit den Ticker-Daten-API eine JSON-Ergebnisstruktur zurückgegeben, die in den $.results\[\*\] ein Array der eigentlichen Kursdaten zurückgibt. Deshalb muss verkürzt in Shareholder hier "results" als Positions-Kurs-Array hinterlegt werden. Danach werden ausgehend von dieser Position dann die JSON-Paths beschrieben. In dem Beispiel hier mit "o" für Open, "h" für High usw.

[![image-1655734004432.png](https://www.shareholder24.com/wiki/uploads/images/gallery/2022-06/scaled-1680-/image-1655734004432.png)](https://www.shareholder24.com/wiki/uploads/images/gallery/2022-06/image-1655734004432.png)

Liegt kein Array-Format vor, sollte das Kurs-Array leer gelassen werden. Dies ist insb. für Quote-Daten mit nur einem Rückgabewert relevant.