【问题标题】:Generate JSON file for SAS dataset using Python使用 Python 为 SAS 数据集生成 JSON 文件
【发布时间】:2020-09-27 04:10:13
【问题描述】:

我的输入数据是 SAS 数据集,样本数据

编号 b'401200262' 政策编号 746346 出生 1960-09-23 00:00:00 家庭儿童 0 杨洋 收入 NaN PARENT1 b'否' HOME_VAL 252896 MSTATUS b'是' 性别 b'M' 教育b'Bachelors' 政策 2 URBANICITY b'高度城市化/城市化' AGE_BAND b'51 - 65' CREDIT_SCORE_BAND b'750 +' 童车 0 开始 1988-05-12 00:00:00 PLCY日期 2001-04-07 00:00:00 第1554章 CLM_FREQ 5 已撤销 b'No' MVR_PTS 1 CLM_AMT 0 CLM_DATE NaT CLAIM_FLAG 0 州 b'IL' TRAVTIME 14.472 CAR_USE b'商业' 蓝皮书 28560 CAR_TYPE b'面板卡车' RED_CAR 是的 车龄 10 TIF 104 职业b'专业' 2001年PLC年 CLM_EXPOSURE 1 LN_CLM_EXPOSURE 0 CUST_LOYALTY 12.9024 BLUEBOOK_1000 28.56

我正在尝试为以下示例中的特定记录生成 REST API JSON 格式,我选择了第二行:

    import pandas as pd
    sasdt = pd.read_sas("c:\hmeq.sas7bdat")
    dfs = [] # holds data chunks
    dfs2=sasdt.loc[2]
    for chunk in sasdt:
        print('{"name":"',chunk,'_","value":',)

我无法生成我想要的类似这样的输出:你能帮我吗

【问题讨论】:

    标签: python json sas


    【解决方案1】:

    试试下面这个:

    import pandas as pd
    import numpy
    import json
    
    sasdt = pd.read_sas('airline.sas7bdat')
    dfs2 = sasdt.loc[2]
    
    # avoid json.dumps raise "TypeError: Object of type 'int64' is not JSON serializable"
    dfs2_values = [int(i) if type(i) == numpy.int64 else i for i in dfs2]
    
    inputs = pd.DataFrame({'name':dfs2.index.to_list(), 'value':dfs2_values}).to_dict(orient='records')
    json.dumps({'inputs':inputs})
    

    你会得到这样的输出:

    '{"inputs": [{"name": "YEAR", "value": 1950.0}, {"name": "Y", "value": 1.569000005722046}, {"name": "W", "value": 0.27799999713897705}, {"name": "R", "value": 0.3156999945640564}, {"name": "L", "value": 1.3880000114440918}, {"name": "K", "value": 0.5730000138282776}]}'
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-22
    • 2021-12-23
    • 1970-01-01
    • 2018-04-17
    • 2013-03-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多