我還是 python 新手,我必須創建一個方法來讀取一些 txt 檔案并回傳每個檔案的串列,其中包含特定列的值。
我試圖創建一個包含我必須讀取的所有檔案的陣列,并將其作為引數發送給我的方法。
import json, requests, urllib.parse, re
from pandas.io.parsers import read_csv
import pandas as pd
from termcolor import colored
import numpy as np
from glob import glob
import os
# Set Up
dateinplay = "2021-09-27"
cdwenv1 = "cdwu" # Note that it only works with the http version right now
cdwenv2 = "cdwp" # Control Env, usually cdwp
CoreMurexFilesLoc = r"J:\Gerard\Release197\UAT\Files\Core"
# Dev Static
cdwenv = "" # leave empty
files = glob(CoreMurexFilesLoc "\\*")
# index 1: MHEU_TradeCash_ | 2: TradeCash_
tradeCashfiles = [i for i in files if "TradeCash" in i]
# index 1: MHEU_Trade_ | 2: Trade_
tradeFiles = [i for i in files if "Trade_" in i]
mheu_tradeCash = tradeCashfiles[1]
tradeCash = tradeCashfiles[2]
mheu_trade = tradeFiles[1]
trade = tradeFiles[2]
filesList = [mheu_trade, trade, mheu_tradeCash, tradeCash]
def read_csv(input: list):
for file in list:
df_trade = pd.read_csv(
file,
delimiter="|",
index_col=False,
dtype="unicode",
)
# Drop any blank fields
df_trade.dropna(subset=["MurexCounterpartyRef"], inplace=True)
tradeList = df_trade["MurexCounterpartyRef"]
return tradeList
read_csv(filesList)
但是我收到了一個不可迭代的物件錯誤,我不明白為什么我不能通過這個串列進行互動。
Traceback (most recent call last):
File "h:\DESKTOP\test_check\ultimateParent.py", line 50, in <module>
read_csv(filesList)
File "h:\DESKTOP\test_check\ultimateParent.py", line 35, in read_csv
for file in list:
TypeError: 'type' object is not iterable
如果有人可以幫助我識別并解決錯誤,我將不勝感激。
uj5u.com熱心網友回復:
發生這種情況是因為您正在嘗試迭代 python 的內置派生資料型別,即“串列”。
根據我的理解,嘗試用“輸入”替換“串列”
def read_csv(myInput: list):
for file in myInput:
df_trade = pd.read_csv(
file,
delimiter="|",
index_col=False,
dtype="unicode",
)
# Drop any blank fields
df_trade.dropna(subset=["MurexCounterpartyRef"], inplace=True)
tradeList = df_trade["MurexCounterpartyRef"]
return tradeList
也許您在函式中寫了“串列”而不是“輸入”。
旁注:通常避免使用 Python 的保留字(此處為“輸入”),因為它們會導致歧義,在最壞的情況下會導致運行時錯誤。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/341266.html
下一篇:覆寫引數[和]之間的文本檔案
