Partage via


Interrogation de données (aperçu)

[Cet article fait partie de la documentation en version préliminaire et peut faire l’objet de modifications.]

Cet article décrit les méthodes disponibles pour interroger des données Dataverse à l’aide du Kit de développement logiciel (SDK) pour Python. Vous pouvez interroger des données à l’aide de SQL (Structured Query Language) et d’API OData.

Les développeurs Python doivent d’abord en savoir plus sur le Kit de développement logiciel (SDK) pour Python en lisant Bien démarrer (préversion) avant de continuer avec cet article.

Interroger des données à l’aide de SQL

Le point de terminaison SQL du service web Dataverse fournit une interface en lecture seule à un ensemble limité de commandes SQL SELECT . Cet article décrit les SELECT options de requête disponibles. Vous pouvez également accéder au point de terminaison SQL à l’aide de l’API Web Dataverse, afin que le code écrit dans des langages autres que Python puisse y accéder.

Important

La prise en charge de SQL est limitée aux requêtes en lecture seule. Les jointures complexes, les sous-requêtes et certaines fonctions SQL peuvent ne pas être prises en charge. La requête SQL doit suivre le sous-ensemble pris en charge :

  • WHERE ne peut être qu’une arborescence d’expressions booléennes où les feuilles sont des opérateurs binaires (=, >comme, etc.) avec l’un des arguments étant une référence de colonne directe et une autre est une constante
  • TOP autorise uniquement un littéral entier
  • ORDERBY ne peut référencer que des colonnes et n’autorise aucune expression complexe

L’exemple de code suivant illustre une requête SQL en Python.

# SQL query (read-only)
results = client.query.sql(
    "SELECT TOP 10 accountid, name FROM account WHERE statecode = 0"
)
for record in results:
    print(record["name"])

Cet appel retourne une liste de dictionnaires de lignes de résultat. Une liste vide est retournée lorsqu’aucune ligne ne correspond.

Interroger des données à l’aide d’OData

Vous pouvez utiliser le Kit de développement logiciel (SDK) pour les API Python client.records pour émettre des requêtes OData pour les données.

# OData query with paging
# Note: filter and expand parameters are case sensitive
for page in client.records.get(
    "account",
    select=["accountid", "name"],  # select is case-insensitive (automatically lowercased)
    filter="statecode eq 0",       # filter must use lowercase logical names (not transformed)
    top=100,
):
    for record in page:
        print(record["name"])

# Query with navigation property expansion (case-sensitive!)
for page in client.records.get(
    "account",
    select=["name"],
    expand=["primarycontactid"],  # Navigation property names are case-sensitive
    filter="statecode eq 0",      # Column names must be lowercase logical names
):
    for account in page:
        contact = account.get("primarycontactid", {})
        print(f"{account['name']} - Contact: {contact.get('fullname', 'N/A')}")

Lors de l’écriture de vos appels OData, suivez ces instructions.

  • Pour le filter paramètre, utilisez des noms logiques minuscules exacts pour les noms de colonnes (par exemple, « statecode eq 0 », et non « StateCode eq 0 »).
  • Pour le paramètre expand, utilisez des noms de propriétés de navigation respectant la casse qui correspondent exactement aux noms de serveur.
  • Les instructions select et orderby ne sont pas sensibles à la casse et sont automatiquement converties en minuscules.

Voir également