[英]Generate JSON file for SAS dataset using Python
My Input Data is SAS dataset, Sample data我的输入数据是 SAS 数据集,样本数据
ID b'401200262' POLICYNO 746346 BIRTH 1960-09-23 00:00:00 HOMEKIDS 0 YOJ NaN INCOME NaN PARENT1 b'No' HOME_VAL 252896 MSTATUS b'Yes' GENDER b'M' EDUCATION b'Bachelors' NPOLICY 2 URBANICITY b'Highly Urban/ Urban' AGE_BAND b'51 - 65' CREDIT_SCORE_BAND b'750 +' KIDSDRIV 0 INITDATE 1988-05-12 00:00:00 PLCYDATE 2001-04-07 00:00:00 OLDCLAIM 1554 CLM_FREQ 5 REVOKED b'No' MVR_PTS 1 CLM_AMT 0 CLM_DATE NaT CLAIM_FLAG 0 STATE b'IL' TRAVTIME 14.472 CAR_USE b'Commercial' BLUEBOOK 28560 CAR_TYPE b'Panel Truck' RED_CAR b'yes' CAR_AGE 10 TIF 104 OCCUPATION b'Professional' PLCYYEAR 2001 CLM_EXPOSURE 1 LN_CLM_EXPOSURE 0 CUST_LOYALTY 12.9024 BLUEBOOK_1000 28.56
I am trying to generate REST API JSON format for a particular record in this below example I have chosen 2nd row:我正在尝试为以下示例中的特定记录生成 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":',)
I am unable to generate my desired output something like this: Could you please help me in this我无法生成我想要的输出是这样的:你能帮我吗
Try this following:试试这个:
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})
You will get output like this:你会得到这样的输出:
'{"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}]}'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.