我有一个csv文件:
devid,1, devType,"type-928"
devid,2, devType,"type-930" etc.
行的长度可能不同,具体取决于包含的密钥对值的数量。但行中必须包含“devid”和“devType”。
希望将它们配对为key:value并以JSON格式进行格式化。
已从S3中以“list”形式检索到它,该列表由\r分隔的字符串组成。
Devices: ['devid,1,devType,"type-928"\r', 'devid,2,devType,"type-930"']
for device in Devices:
device_data = device.split(',')
print(device)
获取以,“”分隔的“字符串”形式的设备:
devid,1,devType,"type-928"
devid,2,devType,"type-930"
按拆分(',')
device_data = device.split(',')
设备数据为:
['devid', '1', 'devType', '"oinet-928"\r']
['devid', '2', 'devType', '"oinet-930"']
等等。
由于“device_data”是一个列表,我尝试使用“zip”。
for first, second in zip(device_data, device_data[1:]):
print(first, ":" second)
但它是配对作为第一和第二,第二和第三等如何获得第一和第二,第三和第四,直到最后。
devid : 1
1 : devType
devType : "oinet-928"
devid : 2
2 : devType
devType : "oinet-930"
最后想做一个JSON格式的文件,用Key:Value配对两个元素的字符串。例如:
{
"data":[
{
"devid": 1,
"devType": "type-928"
},
{
"devid": 2,
"devType": "type-930"
}
]
}
数据中可能有其他值,但必须有“devid”和“devType”,否则将被忽略。
另一个困惑是,如何将逗号放在“}”之后的所有块中,但最后一个除外。
任何帮助都将不胜感激。
2条答案
按热度按时间niwlg2el1#
这就解决了你的问题。
其产生
它的工作原理是检索列表中的每隔一个元素(
::2
是键)ccrfmcuu2#
产出