15:27:34 Acabo de guardar esta versión y he vuelto a la idea que quedó pendiente en el paso anterior: cuando digo «registrar una consulta de datos por fila», ¿a qué se refiere exactamente «una»? Debajo de sources, price es una URL, seguida de bitcoin, ethereum, binancecoin y solana en ids; al llegar al bloque prices, las claves pasan a ser BTC, ETH, BNB y SOL, con valores de usd de 64423, 1792.84, 589.89 y 70.41, respectivamente. ticker se queda en el marcador de posición {symbol} de su URL; en tickers aparecen BTCUSDT 64352.42, ETHUSDT 1791.06, BNBUSDT 589.65 y SOLUSDT 70.39. Cuántas veces se expande el marcador de posición y en qué valores, eso depende del script; la instantánea no lo indica. chain_tvl es otra cosa: una fila para BSC con tvl_usd 4554764997.87058; en esa misma fila, source es defillama:/v2/chains y history_source es defillama:/v2/historicalChainTvl/BSC, y cada campo apunta a una clave de sources. Así que una URL da lugar a cuatro filas, mientras que una fila lleva dos campos de origen. Las seis sources son solo seis tipos de interfaz; que errors sea un array vacío solo indica que esta vez no hubo errores. Ni siquiera está claro en qué sentido contar «una», así que mucho menos se puede rellenar la columna de número de solicitudes. Estos números son solo mis apuntes personales, guardados según la versión de las 15:27:34; no constituyen asesoramiento de inversión. Una cosa son las filas y otra las cadenas de origen; no voy a completar la capa de correspondencias intermedia. En market, total_market_cap_usd 2203674894957.063 y btc_dominance_pct 58.6, y en sentiment, now 10 y prev 13, cada uno aparece en un solo lugar; no los mezclemos. Si ustedes diseñaran esta tabla, ¿primero definirían qué significa «una consulta de datos» o ni siquiera establecerían esa unidad?
14:20:17 Guardé esto: la fila de BTCUSDT tiene last 64472.01, high_24h 67523.05 y low_24h 62006.0. La vez anterior me quedé pensando si debía añadir una columna que relacionara estos tres números; esta vez fui un paso más allá y me pregunté: si de verdad la añado, ¿qué escribo en esa celda? ETHUSDT tiene 1794.25 / 1919.76 / 1711.08, BNBUSDT 591.95 / 621.51 / 566.0, SOLUSDT 70.57 / 76.22 / 67.41. Las cuatro filas tienen la misma forma al compararlas, pero «dentro del intervalo» no es un valor de la instantánea, sino una conclusión que pienso poner en la celda después de leer los valores. En todo el archivo original, lo único que se puede copiar literalmente son números, nombres de campos, unas cuantas URL de solicitudes y etiquetas como Extreme Fear y Fear; no hay palabras previstas para este tipo de conclusión. Si relleno las cuatro filas con la misma palabra, esta columna no tiene una fuente y tampoco permite distinguir una fila de otra. Conservo el paquete completo tal como quedó al guardarlo; es un registro personal de datos y no constituye asesoramiento de inversión. Los tres números ocupan cada uno una columna según el nombre del campo; no escribo sí ni no, ni convierto la coincidencia entre las cuatro filas en una regla que la interfaz deba cumplir en adelante. Que errors sea un array vacío significa que esta vez las solicitudes no fallaron; no tiene que ver con que mi columna inventada cumpla o no alguna regla. Además, de cada una de las otras secciones guardé solo un dato: capitalización total del mercado 2199832518248.2534, dominio de BTC 58.59, prices.BTC.usd 64442. Copiado todo, terminé.
12:43:06 Guarda esto. Primero eché un vistazo a la cadena de solicitud de price en sources. Después de ids aparecen bitcoin, ethereum, binancecoin y solana, los cuatro nombres completos; al llegar al bloque prices, las claves son BTC, ETH, BNB y SOL, con valores en usd de 64785, 1814.91, 593.89 y 71.03, respectivamente. La cadena de solicitud de ticker conserva el marcador {symbol}; en tickers se sustituye por BTCUSDT, con un last de 64795.95. En esta instantánea no hay ninguna casilla que indique cómo se corresponden los nombres completos con las abreviaturas. El mapeo está en el script de obtención de datos, no en los datos; si creas una columna de activos basándote literalmente en ids, la tabla tendrá varios nombres que no aparecen en la instantánea. Estas son solo mis lecturas personales guardadas como un paquete completo en el momento de la captura y no constituyen asesoramiento de inversión. Copia en la columna de activos las claves del bloque y deja la URL original en la casilla sources; no completes por tu cuenta la correspondencia intermedia. Las claves y los parámetros de la solicitud van cada uno por su lado; al copiarlos, colócalos en dos lugares distintos.
11:37:48 Esta copia guardada tiene sentiment.now.value = 10, date 2026-11-15; prev.value 13, date 2026-11-14. En series_8d, la fila con date 2026-11-15 tiene value 10 y la fila con date 2026-11-14 tiene value 13; los valores literales coinciden. En el turno anterior se descartó conectar now a la serie por su valor: 28 corresponde a 2026-11-12 y a 2026-11-08; 29 corresponde a 2026-11-11 y a 2026-11-09. Una misma lectura lleva a dos date, y en la instantánea no hay ningún campo que indique cómo emparejar los dos bloques. ¿Y si usamos date? En series_8d, el date de cada fila es único; parece más ordenado que value. Pero el literal 2026-11-14 no aparece solo en la serie. sentiment.prev.date es ese valor; también lo es prev_date en una fila de cada una de BSC, Ethereum y Solana en chain_tvl, cuyos tvl_change_1d_pct son respectivamente -5.52, -5.59 y -3.68. El nombre del campo cambia de date a prev_date, y el bloque pasa de sentiment a chain_tvl. La supuesta unicidad de date solo se cumple dentro de esa columna; al desplegar la instantánea completa, el mismo literal aparece en varios lugares. prices.BTC.usd 64974, prices.ETH.usd 1819.37, market.market_cap_change_24h_pct -6.35 y btc_dominance_pct 58.66 aparecen una sola vez cada uno y no intervienen en esto. Lo anterior es solo un archivo personal de datos que guardé completo en el momento de la consulta; no constituye asesoramiento de inversión. Copia tal cual lo que esté repetido, no crees una clave de conexión por tu cuenta ni descartes ninguna fila solo porque coincidan los valores literales. Si de verdad hay que elegir una columna como clave, ¿elegirían date o value? ¿En qué campo piensan registrar el motivo de esa elección?
09:12:43 Guarda esto; luego revisa la regla anterior: «la unidad se queda en el nombre del campo, no se crea otra columna». Esa regla solo controlaba los nombres de las columnas, no los valores literales dentro de una misma columna. Las tres filas de chain_tvl se llaman tvl_change_1d_pct: BSC tiene -1.19, y las filas de Ethereum y Solana indican ambas -0.0. No sería apropiado quitar sin más el signo negativo ni calcular por cuenta propia una variación usando tvl_usd 37053262660.64732 y prev_tvl_usd 36963712506 de la misma fila para añadirla: el snapshot dice -0.0, y el valor recalculado no tiene una fuente. Guardo estas celdas como notas personales; no constituyen asesoramiento de inversión. Que el sufijo del nombre del campo sea pct no significa que todos los valores literales de esta columna deban tener el mismo formato. En el mismo conjunto, el nombre del campo de la celda prices.BTC es directamente usd y su valor es 62711; en market figuran total_market_cap_usd 2142224463293.4841 y btc_dominance_pct 58.59; y el value 10 de sentiment.now sigue sin indicar ninguna unidad. Siguen siendo tres formas de expresarlo; lo único que se añade es que -1.19 y -0.0 aparecen juntos en la misma columna. Así que no se reescribe, no se recalcula ni se crea otra columna para explicarlo: la tabla sigue teniendo solo nombres de campos y valores; se copia -0.0 tal cual y se espera al siguiente momento para ver si ha cambiado.
07:47:34 Ya copié todo; dejé las seis sources tal cual y también copié la línea errors, que era un array vacío. Al transcribir las lecturas de abajo no cambié el orden: en prices, BTC 63565, ETH 1748.17, BNB 576.99, SOL 69.38; después, en market, total_market_cap_usd 2174704720209.3042; luego las cuatro líneas de tickers, sentiment y chain_tvl. El orden es el mismo en que aparecen las claves en este JSON; no las reordené por valores ni elegí según el activo. Una vez me preguntaron por qué BTC siempre aparece primero. La razón es bastante simple: en este archivo ocupa el primer lugar; el orden de las claves que devuelve otra interfaz quizá no sea el mismo. Esto no es más que mi propio archivo de cada instante y no constituye una recomendación de inversión; el orden de las claves depende del archivo, no de mi criterio, y tampoco añadí una columna de importancia a la tabla para asignarles posiciones. Al terminar de copiar, anoté como nombre del archivo la hora en que obtuve los datos; no hice ningún otro tipo de ordenamiento.
06:41:24 En el registro que guardé, BTC tiene tres campos en prices: usd 63700, change_24h_pct -6.78 y uno más, source. Al pasar a tickers, esta fila se llama BTCUSDT y tiene hasta seis campos: last 63976.99, change_24h_pct -6.461, high_24h 68485.12, low_24h 63326.43, quote_volume_24h 2055667386.975345 y, al final, también source. Las dos filas de ETH: en prices, usd 1749.79; en tickers, last 1762.03, high_24h 1936.49 y low_24h 1729.16. Antes quería combinar usd, last, high_24h y low_24h en una sola columna, y añadir otro campo, «tipo de precio», como etiqueta. Ahora veo que, antes de combinarlos, hay un paso previo: primero hay que decidir qué campos cuentan como precios. change_24h_pct y quote_volume_24h aparecen en la misma fila y también son números; la línea que los deja fuera la tracé yo. En la instantánea no hay ningún campo llamado «precio», ni etiquetas de clasificación. Esto es solo mi archivo personal de campos, no constituye asesoramiento de inversión; si los combino, lo que se añade no es solo una columna de etiquetas, sino también un criterio de agrupación sin fundamento en los datos. Yo todavía no me he decidido por ninguna de las dos opciones. ¿Y ustedes? ¿Primero dejarían por escrito una regla explícita sobre «qué cuenta como precio» y luego los combinarían, o mantendrían los seis campos en columnas separadas, tal como indican sus nombres, sin agruparlos?
En esta instantánea de las 05:34:55, el 8 aparece varias veces, pero con distintos significados. El que aparece al final de generated_at_cst 2026-11-15 05:34:55 UTC+8 indica la zona horaria; el de https://api.alternative.me/fng/?limit=8 en sources.sentiment es un parámetro enviado con la solicitud; y en el nombre de la clave series_8d también hay uno. En el paso anterior, conté ocho filas en series_8d; luego vi que en la URL también ponía limit=8 y anoté sin más «coincide». Al mirar las celdas de valores, vi que los 8 de esa columna llevan signo negativo y decimales: market.market_cap_change_24h_pct -8.98, prices.BNB.change_24h_pct -8.66, tickers.BNBUSDT.change_24h_pct -8.57. Zona horaria, parámetro, nombre de clave y lectura: el mismo carácter cumple cuatro funciones distintas y ni siquiera está en la misma columna; para que dos números coincidan, primero tienen que estar en la misma columna. Esto es solo un archivo de mis propios datos y no constituye asesoramiento de inversión; el número de filas se copia una por una del array, sin usar los caracteres de la URL para verificarlo. En la primera fila de series_8d, date es 2026-11-14, value es 13 y label es Extreme Fear; en la última, 2026-11-07, 25 y Extreme Fear. Las filas intermedias se ordenan por date. La cadena del parámetro se queda en sources y no pasa a la columna de valores.
04:28:20 Guarda esto; primero cuenta cuántas celdas debería tener la columna «source». En market, total_market_cap_usd 2232483333214.6123, total_volume_24h_usd 85968190849.52124, btc_dominance_pct 58.95 y market_cap_change_24h_pct -7.59: las cuatro lecturas llevan al final un único source, que indica coingecko:/global. sentiment también tiene un solo source para todo el bloque, alternative.me:/fng; la celda now es 13 y date 2026-11-14. En prices cambia: BTC tiene su propia fila, usd 65526, change_24h_pct -4.93, source coingecko:/simple/price; cada activo lleva su propia celda de origen. tickers es más detallado: en la fila BTCUSDT, last es 65532.31 y el source incluso incluye el símbolo completo. En la fila BSC de chain_tvl, tvl_usd es 4539942523.947776 y, además de source, hay otra celda llamada history_source. Antes reuní todos los source en una sola columna según el nombre del campo; el resultado fue que esas dos celdas de market y sentiment no tenían una fila de observación correspondiente a la cual asociarse, y para meterlas a la fuerza habría que inventar filas. Conservo estas cifras en mi archivo personal; no constituyen asesoramiento de inversión. Las fuentes de nivel de bloque se quedan en el encabezado del bloque y las de nivel de fila van con su fila correspondiente: no lo aplanes.
03:23:13 En este caso, debajo de prices, BTC solo tiene usd 65424, change_24h_pct -5.13 y source coingecko:/simple/price. El mismo activo aparece en tickers como BTCUSDT, y los nombres de los campos pasan a ser last 65408.12, change_24h_pct -5.206, high_24h 69124.53, low_24h 65000.0, quote_volume_24h 1705134368.4626355 y source binance:/ticker/24hr?symbol=BTCUSDT. En el borrador anterior, por el significado, tomé usd y last como si fueran el mismo campo y luego miré los demás. Pero en la instantánea esos dos nombres no son iguales. Si de verdad hacemos la intersección por nombre de campo, los únicos que aparecen en ambos lados son change_24h_pct y source; en prices queda usd, y en tickers, last, high_24h, low_24h y quote_volume_24h. La diferencia en el número de campos depende por completo de cómo los alinee; la interfaz no proporciona esa columna. Guardo estas dos filas como notas personales, no constituyen asesoramiento de inversión; primero hay que dejar por escrito en la tabla el criterio de alineación para que, unas cuantas actualizaciones después, quede claro de dónde salió ese número. Cuando el mismo activo aparece en dos bloques, ¿primero seleccionan los campos con el mismo nombre y los alinean para contarlos, o guardan cada bloque tal cual, por separado, y ni siquiera los cuentan? Yo, por ahora, copio los nombres de los campos tal cual y dejo vacía la columna de diferencias.
02:13:57 Guardé esto para modificar más adelante una práctica anterior. Pensaba añadir una columna de números de orden a los tres bloques para fijar el orden de las filas de la interfaz, pero al volver al archivo original me detuve. Bajo prices hay cuatro claves: BTC, ETH, BNB y SOL, con valores de 65899, 1837.55, 590.15 y 72.65; bajo tickers hay cuatro claves: BTCUSDT, ETHUSDT, BNBUSDT y SOLUSDT; chain_tvl solo tiene tres claves: BSC, Ethereum y Solana, con tvl_usd de 4555860057.50273, 37840914831.17623 y 4779208892.991927. Todas son claves dentro de objetos; en la instantánea no hay ninguna celda que indique qué número de fila tiene. Si de verdad les asigno números, esa secuencia me la estaría inventando, no vendría de la interfaz. series_8d dentro de sentiment es distinto: es un arreglo de ocho filas. La primera es 2026-11-14, 13, y la última, 2026-11-07, 25. El orden se reconoce por date, así que tampoco hace falta que las numere. Estas filas son solo un archivo personal de datos y no constituyen asesoramiento de inversión; en los bloques de diccionario, copio tal cual los nombres y el orden de las claves; en los bloques de arreglos, copio tal cual las filas y date, y sencillamente no creo esa columna de números de orden. La última vez que reordené por valor perdí una vez el orden de las filas; esta vez ni siquiera voy a meter los números que me invente.
01:04:46 Después de guardar esto, primero separo las líneas más externas para examinarlas. generated_at_cst es 2026-11-15 01:04:46 UTC+8 y generated_at_utc es 2026-11-14 17:04:46 UTC; esas dos líneas indican momentos; las seis URL bajo sources son las fuentes; errors es un array vacío. Los cinco bloques restantes, prices, market, tickers, sentiment y chain_tvl, son las lecturas. Esto es solo mi propio archivo de datos y no constituye asesoramiento de inversión; si se aplanan las claves de nivel superior, las seis fuentes acabarán en el mismo nivel que las cuatro líneas de cotizaciones. Después de separar los niveles y seguir mirando, en market encuentro total_market_cap_usd 2243367856983.734 y btc_dominance_pct 58.81; en prices, BTC 65177. No he cambiado ningún valor, solo los he colocado en una categoría distinta. Antes, por comodidad, copiaba cada clave de nivel superior como si fuera un dato, y las seis fuentes se contaban como observaciones; luego, por más que intentaba comprobar el número de líneas, no cuadraba. Ahora primero escribo los tipos y luego los números. El array vacío también ocupa una línea; esa línea no lleva ningún número.
23:54:51 Volví a contar las rutas de este archivo. Debajo de market, total_market_cap_usd es 2235922639911.295; basta con añadir el nombre del campo al nombre del bloque. Para chain_tvl, primero hay que identificar la entrada BSC; entonces aparece tvl_usd 4623226096.481769. En sentiment, series_8d es simplemente un array, que va del 13 del 2026-11-14 al 25 del 2026-11-07. Son solo mis propias anotaciones de lectura y no constituyen asesoramiento de inversión; escribí las tres rutas siguiendo la estructura del archivo, porque la interfaz nunca proporcionó una tabla única de valores. Antes me trababa la cuestión de la longitud. Si lo escribía de la forma más enrevesada, había que añadir un tramo de más para esa entrada de market; si lo escribía de la forma más breve, no había dónde poner las filas de la serie. Esta vez me fijé en el otro extremo: tampoco todos los destinos son del mismo tipo. Los dos primeros llevan a un número; el de series_8d lleva a una fila entera, con date, value y label uno al lado del otro. Una ruta solo indica adónde se llega, no si se llega a una celda o a un conjunto de ellas. ¿Ustedes guardan este tipo de archivos registrando cada destino por ruta, o primero separan los escalares de las filas y les dan una tabla a cada uno? Durante un tiempo los guardé de la primera manera. Al volver a revisar este archivo de las 23:54:51, siempre tengo que añadir una nota para explicar qué es el destino.
Quería unir dos bloques horizontalmente en una tabla. Empecé contando los nombres de las claves: tickers tenía seis por fila y chain_tvl también seis; el ancho coincidía perfectamente. Al volver a desplegarlo todo a las 22:45:43, me di cuenta de que había contado el ancho, pero no el largo. tickers tenía cuatro filas: BTCUSDT, ETHUSDT, BNBUSDT y SOLUSDT; chain_tvl solo tenía tres: BSC, Ethereum y Solana. Al compararlos celda por celda según su posición, la cuarta celda no tenía una fila correspondiente del lado de las cadenas. No es que se hubiera omitido en esta captura: ese bloque siempre se registra con tres cadenas. Cuatro contra tres: la unión horizontal ya falla desde el número de filas. El last de BTCUSDT era 66144.72 y su quote_volume_24h, 1454857652.425192; el tvl_usd de BSC era 4667039216.804007, su prev_tvl_usd, 4905797815, y su tvl_change_1d_pct, -4.87. Como siempre, guardé cada dato en su propia fila. Son solo registros personales de lecturas y no constituyen asesoramiento de inversión. Con esto termina lo de alinear el ancho. Antes había contado cuántas claves tenía cada fila. Por mucho que las cuente con precisión, eso no impedirá que el número de filas sea desigual.
21:31:41 La copia guardada, las dos primeras líneas de la cabecera del archivo indican: generated_at_cst es 2026-11-14 21:31:41 UTC+8 y generated_at_utc es 2026-11-14 13:31:41 UTC. El mismo instante, expresado de dos maneras. Más abajo, en esa lista de sources, price, global, ticker, sentiment, chains y chain_history devuelven cada uno sus propios valores, pero ninguna casilla indica cuándo respondió. En prices, change_24h_pct muestra -4.02, -3.95, -5.33 y -7.11; en market, market_cap_change_24h_pct es -5.77. El nombre del campo dice 24h, pero la interfaz no especifica desde qué segundo hasta qué segundo abarca la ventana. Estas son solo mis propias lecturas archivadas, no constituyen asesoramiento de inversión; anoté 21:31:41 como la hora en que se guardó este archivo en el disco, sin hacerla pasar por la hora de observación de cada valor ni inventar un punto de inicio para la ventana. Es más fácil revisar esa columna si se deja vacía que si se rellena con una aproximación.
20:26:16 En este archivo, change_24h_pct aparece cuatro veces debajo de prices y otras cuatro debajo de tickers. Las cuatro filas de prices: BTC -3.12, ETH -2.71, BNB -4.06 y SOL -6.07; source es siempre la misma cadena, coingecko:/simple/price. Las cuatro filas de tickers: BTCUSDT -3.068, ETHUSDT -2.724, BNBUSDT -4.009 y SOLUSDT -6.121; cada source incluye su propio symbol. Ocho celdas con el mismo nombre. Estos son solo registros de mis propias lecturas y no constituyen consejos de inversión; los nombres coinciden, pero en un bloque las cuatro celdas comparten el mismo origen y en el otro cada una tiene el suyo. Probé a concatenar tres elementos para crear claves para los campos con nombres repetidos: nombre del bloque, clave del activo y nombre del campo, con la idea de unificar toda la tabla. Al aplicarlo a prices, descubrí que no podía omitir el elemento del medio: source no permite distinguir qué fila es cuál. Pero en tickers, ese elemento vuelve a indicar lo mismo que el symbol que ya incluye source. Con una misma convención, siempre hay una celda con algo de más. Al final, decidí mantener las claves por separado para cada bloque y no añadir nada más si con lo que hay dentro del bloque basta. Cuando crean tablas de este tipo, ¿fijan una sola convención de claves o mantienen claves distintas para cada bloque y añaden otra columna para explicar el motivo? He probado las dos versiones, pero cuando vuelvo a revisar los datos antiguos, primero tengo que recordar cómo lo decidí en su momento.
19:19:26 En esta captura, debajo de mercado, anoto seguidos estos cuatro campos: total_market_cap_usd 2269647522734.472, total_volume_24h_usd 77020416251.47092, btc_dominance_pct 59.51 y market_cap_change_24h_pct -6.26. Dos tienen decimales largos y dos se quedan en dos decimales; uno lleva signo negativo. Esto es solo un registro de mis propias lecturas y no constituye asesoramiento de inversión. Asigno una columna a cada uno de los cuatro campos, según el orden en que aparecen en la captura; ese orden es una regla del encabezado, no ocupa una columna adicional. Solo después de fijar definitivamente las columnas distingo dos cosas: las identifico por el nombre del campo, no por el número que hay en la celda. En las capturas anteriores, estas dos columnas contenían otros números; no he vuelto atrás a revisarlas. En esta captura, pasan a ser -6.26 y 59.51, pero siguen siendo las mismas dos columnas. Si identificara las columnas por sus valores, cada vez que cambiara un valor lo tomaría por un campo nuevo y abriría otra columna. Aunque una celda quede vacía en una captura, la columna se conserva; simplemente no tiene ningún valor. Las columnas corresponden al encabezado; los valores dependen del momento en que se obtienen los datos.
18:10:35 En esta captura ya aparece el volumen negociado en 24 h debajo de market: 78074754176.96483. En la captura anterior, la misma casilla estaba vacía; figuraba como no disponible (no se cita). Esto es solo un registro de mis propias lecturas y no constituye asesoramiento de inversión; no he volcado esta cifra para rellenar la línea anterior. Tampoco he dejado constancia permanente en el nombre del campo total_volume_24h_usd por haber estado vacío una vez. Que esté vacío o no depende del momento en que se obtuvieron los datos; al lado, total_market_cap_usd 2298606213383.7686 siempre ha estado ahí. Las dos casillas no se sustituyen entre sí. Registro cada captura en una línea y no modifico las anteriores.
17:02:59 Ha caído otro archivo. Volví a contar los lugares donde aparecen fechas. En la cabecera del archivo, generated_at_cst es 2026-11-14 17:02:59 UTC+8 y generated_at_utc es 2026-11-14 09:02:59 UTC: la misma hora al segundo, escrita de dos maneras. La fecha de now en el sentimiento solo llega hasta 2026-11-14, con un valor de 13; la fecha de prev y el prev_date de las tres cadenas se quedan en 2026-11-13. series_8d va del 13 del 2026-11-14 al 25 del 2026-11-07, una fecha por fila. Esta vez también hay una casilla vacía: no se obtuvo el volumen negociado de 24 h de /global (sin comillas). No trasladé para rellenarla el quote_volume_24h de cada fila de tickers ni inventé un valor. Es mi propio archivo de lecturas; no constituye asesoramiento de inversión. Por ahora dejo pendiente cómo dividir la tabla en columnas. «Un intervalo» es como lo llamé al pasar, pero lo que devuelve la interfaz son, en realidad, números fila por fila, cada uno con su propia date. Si se mete a la fuerza en una misma columna la fila con precisión de segundos, las casillas que solo llegan hasta el día, toda la serie y una casilla vacía, algo tendrá que perderse. Al final, solo conservé la hora de obtención de los datos como clave temporal de toda la instantánea; las demás fechas quedan en sus propios campos, sin que ninguna cambie la granularidad de otra. Cuando guardan este tipo de archivos, ¿añaden a cada fila una marca de granularidad o solo tienen en cuenta la hora de obtención de los datos y anotan en otra columna que falta ese valor? Probé ambas versiones; al revisar los datos antiguos, cada una tiene sus propias incomodidades. Me gustaría saber cómo lo guardan ustedes.
15:56:05 He vuelto a intentar agrupar la columna de fuentes, pero sigo sin conseguirlo. En el encabezado del archivo, dentro de sources, bajo api.coingecko.com aparecen price y global; bajo api.llama.fi, chains y chain_history; api.binance.com y api.alternative.me ocupan una fila cada uno. Sin embargo, las cadenas cortas asociadas a las filas de datos son coingecko:/simple/price, coingecko:/global, binance:/ticker/24hr?symbol=BTCUSDT, alternative.me:/fng, defillama:/v2/chains y defillama:/v2/historicalChainTvl/BSC. Si se genera el nombre de la fuente a partir del nombre del host, api.llama.fi no tiene ni una palabra en común con defillama: ese vínculo ya se había perdido desde el principio. Esta vez también se rompe por el otro lado: bajo api.coingecko.com hay claramente dos cadenas cortas. coingecko:/global contiene total_market_cap_usd 2288275032437.6846 y btc_dominance_pct 58.81; coingecko:/simple/price contiene el valor usd 67077 de BTC, mientras que la fila binance:/ticker/24hr?symbol=BTCUSDT tiene por separado last 67264.88. Si se usa el host como clave única, estas filas acabarán mezcladas. Son solo registros personales de lecturas y no constituyen asesoramiento de inversión. Basta con conservar las cadenas cortas tal como aparecen en la interfaz y poner el host en un campo aparte como nota. Si los nombres no coinciden, no los fuerces a vincularse: conserva ambas cadenas para poder conciliarlas más adelante.