我正在尝试使方法client.update_metadata()工作。 我写了这个脚本:
from sodapy import Socrata
# connecting to Socrata
client = Socrata(domain="www.dati.friuliveneziagiulia.it", app_token=None, username="username", password="password")
# download ids of the datasets in the catalogue
id_dataset_catalogo = "dzgx-7n5a"
datasets = client.get(id_dataset_catalogo, provenance="official", publication_stage='published', select="category,u_id,name", where="type = 'dataset' and derived_view='false' and public='true'", content_type="json", limit=6000)
# update metadata
with open('Datasets_in_cui_il_programma_non_ha_avuto_successo.txt', 'w') as f:
for i, dataset in enumerate(datasets):
try:
stringa = f"Dataset {dataset['u_id']}: {dataset['name']}, categoria: {dataset['category']}"
print(f"{i+1}/{len(datasets)})" + stringa)
client.update_metadata(dataset_identifier=dataset['u_id'], update_fields={'metadata': {"customFields": {"Vecchia categoria": {'Già categoria': dataset['category']}}}})
except:
f.write(stringa + '\n')
奇怪的是,如果我使用方法client.get_metadata(),则会得到预期的修改。相反,如果我转到域中的数据集,则根本看不到任何更改。 谢谢您的宝贵帮助。