我正在尝试解析json文件中的数据,并根据该输出创建csv文件。我已经编写了python脚本来根据需要创建输出。我需要在时间和日期排序下面的csv文件
电流输出
我的代码:
## Shift Start | End time. | Primary | Secondary
def write_CSV () :
# field names
fields = ['ShiftStart', 'EndTime', 'Primary', 'Secondary']
# name of csv file
filename = "CallingLog.csv"
# writing to csv file
with open(filename, 'w') as csvfile:
# creating a csv dict writer object
writer = csv.DictWriter(csvfile, delimiter=',', lineterminator='\n', fieldnames = fields)
# writing headers (field names)
writer.writeheader()
# writing data rows
writer.writerows(totalData)
我希望我的csv文件与日期和时间排序如下。至少日期可以
ShiftStart
2020-11-30T17:00:00-08:00
2020-12-01T01:00:00-08:00
2020-12-02T05:00:00-08:00
2020-12-03T05:00:00-08:00
2020-12-04T09:00:00-08:00
2020-12-05T13:00:00-08:00
2020-12-06T13:00:00-08:00
2020-12-07T09:00:00-08:00
2020-12-08T17:00:00-08:00
2020-12-09T09:00:00-08:00
2020-12-10T09:00:00-08:00
2020-12-11T17:00:00-08:00
您可以根据您的数据调整此示例(我没有掌握-:)
使用
DictReader
读取数据时,列表rows
的每个元素都是一个字典,键入CSV数据文件第一行的字段名如果要根据与键对应的值对列表进行排序,则必须为
sorted
提供一个key
参数,该参数是一个返回要排序的值的函数调用此函数时,需要对整个元素进行排序,在您的例子中是一个字典,我们希望对CSV的第一个字段进行排序,该字段由
'a'
索引,因此我们的函数使用lambda syntx在函数调用中内联定义,只是lambda d: d['a']
返回我们要排序的值注意,本例中的排序是按字母顺序排序的,因为我处理的是单个数字,一般来说,您可能需要将值(默认为字符串)转换为在上下文中有意义的其他值,例如
lambda d: int(d['a'])
试试这个,这不仅排序和复制到csv,而且还保留原始数据帧,无需在程序中排序,以便在需要时进行进一步操作
相关问题 更多 >
编程相关推荐