簡體   English   中英

ValueError:當嘗試在 python 中解壓縮 dict 以使用 Pandas 進行數據標記時,沒有足夠的值來解壓縮(預期為 2,得到 1)

[英]ValueError: not enough values to unpack (expected 2, got 1) when trying to unpack dict in python for data labeling with pandas

我創建了一個字典,將每個 api 端點從我的后端標記到一個產品組。 目前我正在嘗試在 python 3.7.6 中使用這個字典來進一步標記我從 NewRelic 獲得的 csv 中的所有數據以及來自所有事務的數據(平均延遲、請求計數等)。 代碼如下:

response = requests.request(
        "GET", self.url,
        auth=(self.user, self.password)
    )
    with open(
            "data.csv",
            "w",
            encoding='utf8'
    ) as jfp:
        jfp.write(response.text)
    doc = pd.DataFrame(pd.read_csv(self.path, sep=";"))
    doc_dic = pd.Series(doc.ProductGroup.values, index=doc.Action).to_dict()
    resp = pd.DataFrame(pd.read_csv("data.csv", sep=","))
    for k, v in doc_dic:
        if k == resp.Action:
            resp.insert(0, "Product Group", v)

但我收到以下錯誤:

回溯(最近一次調用最后一次):

File "C:/Project/Dev/analytics/app/data.py", line 53, in <module>
    Data().csv_data()
  File "C:/Project/Dev/analytics/app/data.py", line 42, in csv_data
    for k, v in obj:
ValueError: not enough values to unpack (expected 2, got 1)

在 dict obj 中,鍵是 api 端點,值是每個 api 端點所屬的產品組。 預期的行為是,在將字典與作為請求響應返回的 csv 文件進行比較后,pandas 會為每個端點插入一個具有適當產品組的列(產品組的索引 0 和端點的索引 1)。 我該怎么做才能得到這個輸出?

替換您的代碼:

for k, v in doc_dic:
        if k == resp.Action:
            resp.insert(0, "Product Group", v)

和:

for k, v in doc_dic.items():
        if k == resp.Action:
            resp.insert(0, "Product Group", v)

你需要做: for k, v in doc_dic.items()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM