我有一个包含4列数据的csv文件,如下所示。
type,MetalType,Date,Acknowledge
Metal,abc123451,2018-05-26,Success
Metal,abc123452,2018-05-27,Success
Metal,abc123454,2018-05-28,Failure
Iron,abc123455,2018-05-29,Success
Iron,abc123456,2018-05-30,Failure
(我只是在上面的示例数据中提供了标头,但就我而言,我在数据中没有标头)
如何将以上csv文件转换为以下格式的Json ...
第一列:属于-> "type": "Metal"
第二列:MetalType: "values" : "value": "abc123451"
第三列:"Date": "values":"value": "2018-05-26"
第4列:"Acknowledge": "values":"value": "Success"
,其余所有列均为默认值。
按照以下格式,
{
"entities": [
{
"id": "XXXXXXX",
"type": "Metal",
"data": {
"attributes": {
"MetalType": {
"values": [
{
"source": "XYZ",
"locale": "Australia",
"value": "abc123451"
}
]
},
"Date": {
"values": [
{
"source": "XYZ",
"locale": "Australia",
"value": "2018-05-26"
}
]
},
"Acknowledge": {
"values": [
{
"source": "XYZ",
"locale": "Australia",
"value": "Success"
}
]
}
}
}
}
]
}
答案 0 :(得分:-1)
即使jww是正确的,我也为您构建了一些东西:
我使用熊猫导入csv:
df = pd.read_csv('data.csv')
然后,我为要添加的字典创建一个模板:
d_json = {"entities": []}
template = {
"id": "XXXXXXX",
"type": "",
"data": {
"attributes": {
"MetalType": {
"values": [
{
"source": "XYZ",
"locale": "Australia",
"value": ""
}
]
},
"Date": {
"values": [
{
"source": "XYZ",
"locale": "Australia",
"value": ""
}
]
},
"Acknowledge": {
"values": [
{
"source": "XYZ",
"locale": "Australia",
"value": ""
}
]
}
}
}
}
现在您只需要填写字典:
for i in range(len(df)):
d = template
d['type'] = df['type'][i]
d['data']['attributes']['MetalType']['values'][0]['value'] = df['MetalType'][i]
d['data']['attributes']['Date']['values'][0]['value'] = df['Date'][i]
d['data']['attributes']['Acknowledge']['values'][0]['value'] = df['Acknowledge'][i]
d_json['entities'].append(d)
我知道我遍历df的方式有点丑陋,也许有人知道更干净的方式。
干杯!