"¿Te has preguntado alguna vez cómo acceder a Microsoft SharePoint en tus scripts de Python?
Este tutorial trata precisamente de eso: podrás hacerlo de forma sencilla utilizando una herramienta llamada Connect Bridge".
Publicado originalmente el 10 de julio de 2019
Última actualización: 14 de octubre de 2026
En resumen
- Para qué sirve: permite que un script de Python lea y escriba en listas y bibliotecas de documentos de SharePoint utilizando SQL sin formato, a través de ODBC y el
pyodbcmódulo. - Cómo: Una herramienta comercial, Connect Bridge (con versión de prueba gratuita disponible), actúa como intermediario entre Python y SharePoint y presenta la API de SharePoint como si se tratara de una base de datos.
- Lo que necesitas: un ordenador con Windows, Python 3,
pyodbc, Connect Bridge con una cuenta SharePoint configurada, y la cadena de conexión ODBC que genera. - Lo que obtienes: Un script básico de unas 15 líneas, además de ejemplos de SQL y procedimientos almacenados para crear listas, insertar registros y cargar y descargar documentos.
- Advertencias: Solo para Windows (según las pruebas realizadas por el autor); licencia comercial.
- Lo mejor para: equipos que piensan en SQL y quieren evitar tener que aprender directamente la API de SharePoint.
Índice
Introducción
Este artículo describe cómo hacer Python se conecta a SharePoint, es decir, cómo acceder a los datos de los sistemas Microsoft SharePoint (2013, 2016, 2019 u Online) desde scripts escritos en lenguaje Python. Las transferencias de datos se realizan a través de la capa ODBC.
Nota de actualización: Los ejemplos de este artículo se crearon y probaron originalmente entre 2019 y 2022 con Python 3.7 y módulo pyodbc Versión 4.0.26. En octubre de 2026, simplificamos el script y reescribimos su gestión de errores para Python 3.14 y pyodbc 5.3.0. Si algo funciona de forma diferente en tu entorno, por favor, háznoslo saber en los comentarios.
Es importante señalar que en este artículo utilizamos un producto comercial llamado Connect Bridge. Esto es, de hecho, lo que hace posible la integración de Python / SharePoint, permitiendo la comunicación de datos de manera que estés seguro de que no estás estropeando el lado SharePoint (y, créeme, esto es MUY importante). Usted puede obtener una prueba gratuita para Connect Bridge, así que puedes probar todo esto por ti mismo.
¿Qué es este "Connect Bridge"?
Me alegro de que lo preguntes. Connect Bridge es una plataforma de integración desarrollada por Connecting Software que permite conectar cualquier software a través de drivers ODBC, drivers JDBC o Web Services. La visión general de la arquitectura de la herramienta está en este diagrama de escenario cliente-servidor.
(opens in a new tab)Connect Bridge arquitectura de la plataforma de integración
Como puede ver en el diagrama de arquitectura, la herramienta puede ser usada para acceder no sólo a los datos de Microsoft SharePoint desde dentro de su script Python, sino que también puede agarrar/colocar datos desde/hacia Microsoft Exchange y Microsoft Dynamics CRM entre muchos otros.
El objetivo de nuestro trabajo era crear un script en Python que nos permitiera hablar con el SharePoint a través del Connect Bridge.
Nosotros utilizamos SharePoint, pero es posible utilizar una lógica similar para conectarse a Microsoft Exchange o a un CRM como Salesforce o Dynamics.
Para empezar...
¡Ahora vamos a empezar este tutorial! Nuestro objetivo es crear un sencillo script en Python que acceda a una instancia SharePoint. Asumimos que la instancia SharePoint ya existe (asegúrate de tener tus credenciales de acceso a mano). Estos son los sencillos pasos que debes seguir:
1. Solicite una prueba gratuita e instale el Connect Bridge
2. Instalar Python para Windows ver. 3.14+. Ten en cuenta que, para facilitar la escritura, la ejecución y la depuración de mi script, hemos utilizado Liclipse 12.0.1 con el complemento pydev, aunque esto es, por supuesto, opcional. Se puede utilizar cualquier editor, como VS Code o PyCharm.
3. Instalar módulo pyodbc 5.3.0+
4. Ejecute Connect Bridge Management Studio y
4.1. Añade una cuenta para SharePoint (Cuentas - Añadir cuenta). Aquí es donde necesitarás las credenciales que hemos mencionado antes.
4.2. Abrir el Nueva consulta y luego la opción Navegador de conexión. Encuentre el Conector SharePoint y ábralo hasta que vea el Conexión por defecto. Haga clic con el botón derecho del ratón y elija Obtener la cadena de conexión. A continuación, copie la cadena de conexión ODBC. La necesitará para pasarla al script.
4.3. Utilice la opción de Nueva Consulta para probar una consulta que acceda a lo que necesita en SharePoint. Aquí haremos una consulta de ejemplo, pero es aquí donde debe poner lo que busca en SharePoint. Una vez que haya hecho clic en Nueva consultaabrir el Navegador de conexión. Encuentre el Conector SharePoint y ábralo hasta que vea el Tablas opción. Verá que el esquema contiene una "tabla" llamada Site_Pages, por lo que podemos construir nuestra consulta como
SELECT UniqueId, ContentType, Created, Modified, ContentVersion FROM Site_Pages LIMIT 10;
para seleccionar las 10 primeras entradas del SharePoint Páginas del sitio lista. Es importante señalar que, aunque parezca que estamos utilizando directamente una base de datos, no es así.
Connect Bridge accede a la API y luego la presenta como si fuera una base de datos. Una vez que tengas tu consulta, cópiala, ya que también la necesitarás para pasársela al script.
¡Manos a la obra!
El núcleo y, al mismo tiempo, el único archivo de nuestra solución es CBQuery.py. El código fuente completo está abajo. Por favor, concéntrese en las líneas 70-92 que representan el núcleo de la solución. Una descripción completa de cómo funciona este script se encuentra a continuación.
#!/usr/bin/env python3
# codificación: utf-8
"""
CBQuery: consulta datos y escribe datos en SharePoint
Ejecuta consultas SQL a través del controlador ODBC de Connect Bridge.
@autor: Ana Neto
@creado: 04/07/2019
@actualizado: 14/10/2026
"""
import sys
from argparse import ArgumentParser
from contextlib import closing
import pyodbc
def main():
parser = ArgumentParser(description=__doc__)
parser.add_argument("connstr", help="Cadena de conexión ODBC de Connect Bridge Management Studio")
parser.add_argument("query", help="Consulta SQL o instrucción EXEC que se va a ejecutar")
args = parser.parse_args()
try:
# Cerrar la conexión al finalizar
with closing(pyodbc.connect(args.connstr)) as conn:
cursor = conn.cursor()
cursor.execute(args.query)
if cursor.description is None:
# No se han devuelto filas de resultados
conn.commit()
print("OK")
else:
for row in cursor:
print(row)
conn.commit()
return 0
except KeyboardInterrupt:
return 130
except pyodbc.Error as err:
print(f"Error ODBC: {err}", file=sys.stderr)
return 2
if __name__ == "__main__":
sys.exit(main())Esto es lo que hace nuestro script:
- El
argparseEl bloque lee los dos argumentos de la línea de comandos,connstr(la cadena de conexión ODBC) yconsulta. - La variable `connstr` contiene la cadena de conexión ODBC que pasamos al módulo `pyodbc` para crear una conexión ODBC (almacenada en el
convariable). La conexión está envuelta encontextlib.closing, por lo que siempre se cierra al finalizar el bloque, incluso si se produce un error. - A continuación, abrimos un cursor de base de datos utilizando la conexión almacenada en «conn»
- Ejecutamos la consulta SQL (esta es la consulta que se ha pasado a través del parámetro de la línea de comandos denominado «query»)
- Si la instrucción devuelve filas, recorremos el cursor y leemos los resultados fila por fila, mostrando cada fila tal cual. Esta ha sido nuestra elección para esta demostración, pero ten en cuenta que podría tratarse de cualquier tipo de salida… podríamos dar formato en XML, JSON, CSV… o cualquier otro tipo de formato de intercambio de datos. También podríamos utilizar simplemente el objeto de fila de datos sin procesar en código posterior para realizar tareas personalizadas.
- Si la instrucción no devuelve ninguna fila (INSERT, EXEC), el script muestra “OK”.
- En ambos casos, la transacción se confirma de forma explícita, por lo que se guardan los cambios realizados mediante las instrucciones INSERT y los procedimientos almacenados.
- Los errores ODBC se envían a stderr y el script finaliza con el código 2. Al pulsar Ctrl+C, el script finaliza con el código 130, y si se ejecuta correctamente, con el código 0.
Ejecutando el script CBQuery.py
CBQuery.py admite dos argumentos posicionales en la línea de comandos: connstr y query.
Tenemos que copiarlos desde Connect Bridge Management Studio tal y como se ha explicado anteriormente (punto 4 del Empezando... sección).
A continuación, ejecuta el script de la siguiente manera:
python CBQuery.py "" "SELECT UniqueId, ContentType FROM Site_Pages LIMIT 10;"
Supongamos ahora que queremos crear una lista de contactos en SharePoint y añadir un contacto a dicha lista.
Básicamente, tenemos que seguir el mismo proceso, pero cambiar la consulta para utilizar un “procedimiento almacenado”. Una vez más, este “procedimiento almacenado” accederá, de hecho, a SharePoint a través de la API, pero introducirá los datos en la tabla SharePoint que hayas especificado. Esta es la consulta que debemos ejecutar:
EXEC SP_CREATE_TABLE 'MyContacts', 'This table was created using Connect Bridge', true, 'Contacts';
Los parámetros, por orden, son: el nombre de la nueva lista (Mis contactos); una descripción; un indicador booleano (verdadero); y la plantilla de lista SharePoint en la que basarla (Contactos).
La consulta crea una nueva lista SharePoint (MyContacts), con una descripción que se mostrará en la barra de inicio rápido de la página SharePoint.
Ahora tenemos que ejecutar la siguiente consulta para actualizar la reflexión del esquema ODBC de Connect Bridge según el esquema de SharePoint. De este modo, nuestra nueva “tabla” será visible para el cliente ODBC. (Este procedimiento no admite parámetros.)
EXEC SP_UPDATE_SCHEMA;
En este punto podemos insertar una entrada de contacto en nuestra lista de contactos.
INSERT INTO MyContacts (Nombre, Apellidos) VALUES ('Ana', 'Neto');
Ahora deberías poder ver nuestra entrada y nuestra nueva lista de SharePoint en la interfaz de usuario de SharePoint.
Podemos seleccionar la entrada que acabamos de crear ejecutando la siguiente consulta.
SELECT FirstName,LastName FROM MyContacts
Para cargar un documento compartido, utilizaremos la lista “Documentos” existente SharePoint y el “procedimiento almacenado” SP_INSERT_SHAREDDOCUMENT. Los parámetros que admite son:
- Nombre de la tabla de documentos compartidos
- Nombre del archivo
- Carpeta (ruta relativa, en el servidor)
- Tipo MIME
- Datos del archivo (codificados en Base64; en el ejemplo siguiente,
SGVsbG8gV29ybGQ=es simplemente el texto “Hello World”)
Podemos insertar el documento ejecutando la siguiente declaración:
EXEC SP_INSERT_SHAREDDOCUMENT
'Documentos',
'hello2.txt',
'/Documentos compartidos/Nueva carpeta',
'text/plain',
'SGVsbG8gV29ybGQ=';
Si quieres comprobar de antemano si existe la carpeta, puedes ejecutar la instrucción que aparece a continuación. Sus parámetros son el nombre de la biblioteca de documentos y la ruta relativa de la carpeta:
EXEC SP_ENSURE_FOLDER_PATH
'Documentos',
'/NuevaCarpeta';
Después de ejecutar el SP_INSERT_SHAREDDOCUMENT podemos comprobar la presencia del documento en la tabla "Documentos" ejecutando la sentencia:
SELECT Id,Name FROM Documents;
También podemos descargar el contenido binario de un documento concreto de una biblioteca de documentos determinada ejecutando la instrucción a continuación. Sus parámetros son el nombre de la biblioteca y el ID del documento, tal y como los devuelve la función SELECT anterior:
EXEC SP_SAVE_SHAREDDOCUMENT_BY_ID 'Documents', 2;
En este punto, puedes comprobar si el documento compartido existe en la interfaz de usuario de SharePoint.
Restricciones
Hasta ahora, solo hemos podido utilizar la herramienta Connect Bridge desde sistemas operativos Windows, ya que no existe ninguna biblioteca cliente ODBC para Linux (y ni siquiera sabemos si eso es posible). Así que asegúrate de probar tus scripts de Python en un ordenador con Windows.
Conclusión
Hemos visto cómo se puede acceder fácilmente a los datos de SharePoint en Python utilizando la plataforma de integración Connect Bridge. Ahora imagina que lo que has visto en este artículo también es posible con Microsoft Dynamics CRM y Microsoft Exchange. Sí, con Connect Bridge esto es posible y la forma de hacerlo es similar.
¿A quién puedo acudir para hacer preguntas?

Por Ana Neto, asesor técnico en Connecting Software.
"Soy ingeniero informático desde 1997, con una afición más reciente por escribir y hablar en público. ¿Tiene alguna pregunta o comentario sobre este artículo? Me encantaría conocer tu opinión, ¡deja un comentario a continuación!"

Comments 1
Gracias por la clara explicación.