使用Python将京东账单导入到随手记

本文详细描述了如何使用Python脚本从京东APP导出CSV账单,移除多余行后,按照随手记模板将其转换为xls文件,并导入到随手记的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介

之前的文章中有提到使用Python将微信和支付宝账单导入到随手记。由于笔者平时购物主要使用京东,想要把京东的账单也给记录起来,所以向京东提了导出账单的需求。没想到这个功能很快就上线了。
请添加图片描述

导出账单

打开京东APP–》我的–》我的钱包–》我的账单–》点击右上角的四个小方块,导出账单。
请添加图片描述

账单转换

导出的账单是csv格式,但是前边21行是一些说明性的文字,咱们给它去掉。代码如下:

def remove_lines_range(file_name, start, end):
    with open(file_name, 'r', encoding='utf-8') as file:
        lines = file.readlines()
    
    with open(file_name, 'w', encoding='utf-8') as file:
        #print(lines[:max(start-1,0)])
        #print(lines[end:])
        file.writelines(lines[:max(start,1)-1] + lines[end:])

if __name__ == '__main__':
    # 使用示例
    file_name = 'test.csv'
  
    start_line = 0  # 起始行(包含)
    end_line = 21    # 结束行(包含)
    remove_lines_range(file_name, start_line, end_line)

然后就是读取csv中的账单按照随手记的模板写入到xls文件中,参考代码如下:

from tkinter.messagebox import NO
import xlrd
import xlwt
from xlutils.copy import copy
from datetime import date, datetime
import chardet
import codecs
import csv
from common import remove_lines_range


# 打开随手记模板文件
read_book = xlrd.open_workbook(r"./template.xls", formatting_info=False)

# 获取所有的sheet
print("所有的工作表:", read_book.sheet_names())
r_zhichu_sheet = read_book.sheet_names()[0]

# 根据sheet索引或者名称获取sheet内容
r_zhichu_sheet = read_book.sheet_by_index(0)

# sheet1的名称、行数、列数
print("工作表名称:%s,行数:%d,列数:%d" %
      (r_zhichu_sheet.name, r_zhichu_sheet.nrows, r_zhichu_sheet.ncols))
head: list = r_zhichu_sheet.row_values(0)  # 获取第一行的表头内容
print(head)
index = head.index('交易类型')  # 获取交易类型列所在的列数

# 拷贝一份用于写
write_book = copy(read_book)
zhichu_sheet = write_book.get_sheet(0)



# 打开微信的账单文件
file_name = "jd1209"
csv_file_name = "jd1209.csv"



remove_lines_range(csv_file_name, 0, 21) #去掉前20行
with codecs.open('./{}'.format(csv_file_name), encoding="utf-8") as f:
    r = 1  # 行数
    for row in csv.DictReader(f, skipinitialspace=True):
        print(row)

        # 原始row中有很多空格,给去除一下
        new_row = {}
        for k in row:
            new_row[k.strip()] = row[k].strip()

        print("to write:", new_row)
        



        zhichu_sheet.write(r, head.index("交易类型"), "支出")
        zhichu_sheet.write(r, head.index("日期"), new_row["交易时间"])

        main_class = "其他杂项"
        sub_class = "其他杂项"
        
        # 京东的分类都比较杂,这里随便写写,导入后要手动分类
        zhichu_sheet.write(r, head.index("分类"), main_class)
        zhichu_sheet.write(r, head.index("子分类"), sub_class)
        zhichu_sheet.write(r, head.index("账户1"), "京东白条")
        
        zhichu_sheet.write(r, head.index("金额"), new_row["金额"])
        zhichu_sheet.write(r, head.index("商家"), new_row["商户名称"])
        zhichu_sheet.write(r, head.index("备注"), new_row["交易说明"])

        r=r+1

write_book.save("{}.xls".format(file_name))

导入到随手记

导入到随手记的步骤请参考另一篇文章:使用Python将微信和支付宝账单导入随手记

总结

本文介绍了如何将京东的账单导入到随手记,目前代码实现比较粗糙。可能以后还会进一步完善。代码仓库:京东账单导入随手记的python代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值