无法将项目附加到字典的列表部分

问题描述 投票:0回答:0

我正在尝试从 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'
python
© www.soinside.com 2019 - 2024. All rights reserved.