我正在尝试从 excel 表中读取数据并将值附加到列表字典中。在这里,字典的 KEY 是日期和 Values Numbers (Price)。只要重复日期,就没有发现问题。如果重复日期,则追加不起作用并以错误结束AttributeError:'float'对象没有属性'append'
{ 20230128: [45.6, 34, 4, 3, 2], 20230115: [56, 98, 9.8]}
似乎 append 没有在下面的代码中使用。
import pandas as pd
import re
import math
import numpy
from collections import defaultdict
# Input
forex_all_trans_dict = defaultdict(list)
bluecoins_all_trans_dict = {}
transactions_file_path = r'C:\My_Drive\Workspace\My_Work\Experiences\implementations\computing\coding\python\00-tiny-projects\020.transactions-test.xlsx'
# Extract Date and Remove Hypens
def extract_date_key(rec_date_string):
timestamp = str(rec_date_string)
entry_date = timestamp.split()
entry_date_string = entry_date[0]
date_dict_key = re.sub('-', "", entry_date_string)
return date_dict_key
# Extract Debit Amouunt
def extract_debit_amt(rec_debit_string):
is_number = numpy.isnan(rec_debit_string)
if is_number:
debit_amt_return = 0
else:
debit_amt_return = rec_debit_string
return debit_amt_return
# Adding to Dictionary of Lists
def adding_to_dict_of_list(rec_key, rec_value, rec_dict_name):
if rec_key in forex_all_trans_dict.keys():
rec_dict_name[rec_key].append(rec_key)
#print("Dictionary {} at {} {}".format(forex_all_trans_dict, rec_key, rec_value))
else:
rec_dict_name[rec_key] = rec_value
#print("Dictionary {} at {} {}".format(forex_all_trans_dict, rec_key, rec_value))
# Forex Card Transactions
forex_raw_records = pd.read_excel(transactions_file_path, sheet_name='Forex Card', usecols="A:I",nrows=200, engine='openpyxl')
for forex_raw_record in forex_raw_records.itertuples():
date_dict_key = extract_date_key(forex_raw_record.Date)
debit_amt = extract_debit_amt(forex_raw_record.Debit)
adding_to_dict_of_list(date_dict_key, debit_amt, forex_all_trans_dict)
print(forex_all_trans_dict)
从Excel输入数据
错误
Traceback (most recent call last):
File "c:\My_Drive\Workspace\My_Work\Experiences\implementations\computing\coding\python\00-tiny-projects\020.bluecoins_compare.py", line 76, in <module>
adding_to_dict_of_list(date_dict_key, debit_amt, forex_all_trans_dict)
File "c:\My_Drive\Workspace\My_Work\Experiences\implementations\computing\coding\python\00-tiny-projects\020.bluecoins_compare.py", line 61, in adding_to_dict_of_list
rec_dict_name[rec_key].append(rec_key)
AttributeError: 'float' object has no attribute 'append'