SDMX Json解析-无时间段问题-OECD数据集python提取

SDMX Json解析-无时间段问题-OECD数据集python提取,python,json,parsing,blob,sdmx,Python,Json,Parsing,Blob,Sdmx,我正在使用python库pandaSDMX从OECD数据库中提取整个数据集,并将其转换为CSV格式(任何可读格式都可以,因为我希望将最终输出放在SQL数据库中) 要访问SDMX Json格式(还有SDMXML格式)的OECD数据集,您可以在浏览器上粘贴如下链接: 注意:“PART2”是数据集的名称 问题是,有些经合组织数据集的SDMX Json没有一个名为Time\u Period的维度,而我发现的所有SDMX Json解析python库都只解析具有该维度的SDMX Json 我还试图找到一些

我正在使用python库
pandaSDMX
从OECD数据库中提取整个数据集,并将其转换为CSV格式(任何可读格式都可以,因为我希望将最终输出放在SQL数据库中)

要访问SDMX Json格式(还有SDMXML格式)的OECD数据集,您可以在浏览器上粘贴如下链接:

注意:“PART2”是数据集的名称

问题是,有些经合组织数据集的SDMX Json没有一个名为Time\u Period的维度,而我发现的所有SDMX Json解析python库都只解析具有该维度的SDMX Json

我还试图找到一些可以解析SDMXML(SDMX-ML)文件的python库(也可以),但是用python构建这个过程对我来说不起作用

下面是我用来解析SDMX Json数据集并在Azure blob存储上写入输出CSV文件的代码片段:

# itera sob cada ficheiro json e converte o conteudo para csv
    for dataset in datasetList:
        cursor = cnxn.cursor()

        Values = [dataset, datasetFiltersList[counter]]
        cursor.execute(SQLLogCommand, Values)
        cnxn.commit()

        #logging.info('Analysing dataset: ' + dataset)
        try:
            data_response = oecd.data(resource_id=dataset, key=datasetFiltersList[counter])
        except UnicodeDecodeError:
            Values = [datetime.today().strftime('%Y-%m-%d-%H:%M:%S'), 'Unicode Decode Error - Error', 0]
            cursor.execute(SQLUpdateCommand, Values)
            cnxn.commit()
        except KeyError:
            Values = [datetime.today().strftime('%Y-%m-%d-%H:%M:%S'), 'Key Error - Error', 0]
            cursor.execute(SQLUpdateCommand, Values)
            cnxn.commit()
        else:
            data = data_response.data
            if data.dim_at_obs == 'TIME_PERIOD':
                df = createDF(data, useIDs=False)
                blobService.create_blob_from_text(CONTAINERNAME, csvBlobPath + dataset + '.csv' , df.to_csv(index=False, sep='|', encoding='utf-8'))

                Values = [datetime.today().strftime('%Y-%m-%d-%H:%M:%S'), 'Success', 1]
                cursor.execute(SQLUpdateCommand, Values)
            cnxn.commit()  
            #logging.info('Dataset ' + dataset + ' analysed!')
        else:
            print('no time period error on dataset: ' + dataset)
            Values = [datetime.today().strftime('%Y-%m-%d-%H:%M:%S'), 'No Time Period - Error', 0]
            cursor.execute(SQLUpdateCommand, Values)
            cnxn.commit()  

cnxn.close()
所以,我的最后一个问题是:

有人知道解析没有时间段的SDMX Json文件的方法吗 维或者以其他方式自动从中提取整个数据集 然后分析它

例如:

  • 带有时间段的数据集(这一个对我来说很好):
  • 无时间段的数据集: