如何修复ValueError:没有足够的值在python中解包(预期为2,得到1)?

用户2155000

我想监视我的docker容器ram的使用。现在,我在网上找到了一个脚本,该脚本生成具有如下统计信息的txt文件:

LOG_FILE="/volume1/docker/docker-logs.txt"

while true;
do
    sleep 10m
    docker stats --format "{{.Name}}, {{.MemUsage}}" --no-stream >> $LOG_FILE
    #echo "-" >> $LOG_FILE
done

使用Synology NAS在启动时运行它。工作正常,我得到了这个文件:

-
Python3, 46.42MiB / 150MiB
hassio, 160.8MiB / 3.855GiB
Jacket, 255.4MiB / 3.855GiB
Radarrnodebug, 96.87MiB / 3.855GiB
Sonarrnodebug, 112.8MiB / 3.855GiB
Ombii, 212.2MiB / 3.855GiB
watchtower, 11.48MiB / 50MiB
-
Python3, 46.42MiB / 150MiB
hassio, 68.34MiB / 3.855GiB
Jacket, 258.3MiB / 3.855GiB
Radarrnodebug, 101.8MiB / 3.855GiB
Sonarrnodebug, 114.8MiB / 3.855GiB
Ombii, 212.4MiB / 3.855GiB
watchtower, 11.48MiB / 50MiB
-
Python3, 46.42MiB / 150MiB
hassio, 71.06MiB / 3.855GiB
Jacket, 262.7MiB / 3.855GiB
Radarrnodebug, 102.2MiB / 3.855GiB
Sonarrnodebug, 124.1MiB / 3.855GiB
Ombii, 217.7MiB / 3.855GiB
watchtower, 11.48MiB / 50MiB
-
Python3, 46.42MiB / 150MiB
hassio, 81.38MiB / 3.855GiB
Jacket, 262.7MiB / 3.855GiB
Radarrnodebug, 102.5MiB / 3.855GiB
Sonarrnodebug, 125.1MiB / 3.855GiB
Ombii, 217.6MiB / 3.855GiB
watchtower, 11.48MiB / 50MiB
-
Python3, 46.42MiB / 150MiB
hassio, 76.55MiB / 3.855GiB
Jacket, 269.2MiB / 3.855GiB
Radarrnodebug, 103.3MiB / 3.855GiB
Sonarrnodebug, 123.8MiB / 3.855GiB
Ombii, 219MiB / 3.855GiB
watchtower, 11.48MiB / 50MiB
-
Python3, 46.42MiB / 150MiB
hassio, 77.52MiB / 3.855GiB
Jacket, 268.4MiB / 3.855GiB
Radarrnodebug, 106.2MiB / 3.855GiB
Sonarrnodebug, 117.8MiB / 3.855GiB
Ombii, 213.1MiB / 3.855GiB
watchtower, 11.48MiB / 50MiB
-

现在,要使其成为一个不错的PNG,我需要以下内容:

from pip._internal import main
main(["install", "matplotlib", "numpy","pandas"])

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

log_path = "/stats/docker-logs.txt"

with open(log_path) as f:
    raw_data = f.readlines()
nrows = 8
n = len(raw_data) // nrows
data = []
for i in range(n):
    start = i * nrows
    end = start + nrows - 1
    d = raw_data[start:end]
    datum = {}
    datum['i'] = i
    for line in d:
        name, stats = line.strip().split(',')
        stats = float(stats.split('/')[0].strip()[:-3])
        datum[name] = stats
    data.append(datum)

data = pd.DataFrame(data)
data['time (hour)'] = data['i'] * 10 / 60
ax = data.drop(columns='i').set_index('time (hour)').plot()
ax.set_ylabel('RAM Usage (MiB)')
ax.figure.savefig('/stats/plot.png')

在beginnen中工作正常,但突然失去作用,我收到以下错误:

Traceback (most recent call last):
  File "/stats/genstat.py", line 22, in <module>
    name, stats = line.strip().split(',')
ValueError: not enough values to unpack (expected 2, got 1)

做了一些调试,发现

var i

变为0,所以什么也没做(因为必须跳过“-”字符),发生了什么事,我该如何解决?我已经尝试了很多操作,删除了“-”字符,以小数位表示变化,但没有什么真正重要的(对于meeeee)

希望有人能帮忙

Ijaz Ahmad Khan |

这是更pythonic的:

if ',' not in line:
    continue
name, stats = line.strip().split(',')

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何修复 ValueError:没有足够的值在 Python 中解压(预期为 3,得到 1)?

如何修复“没有足够的值来解包(预期为 2,得到 1)”错误

如何修复 Python 错误:没有足够的值来解包(预期 2,得到 1)

如何修复 ValueError:没有足够的值在 python 中解压(预期 3,得到 2)

ValueError:没有足够的值可解包(预期2,得到1)NetworkX python 3

Python OpenCV 中的 ValueError - 没有足够的值来解包(预期 3,得到 2)

ValueError:没有足够的值来解包(预期为 1,得到 0)

ValueError:没有足够的值可解包(预期为4,得到1)

ValueError:没有足够的值来解包(预期为 8,得到 1)

ValueError:尝试解包python中的dict以对熊猫进行数据标记时,没有足够的值要解包(预期2,得到1)

ValueError:没有足够的值来解包(预期为 2,得到 1)使我无法完成我的代码

nm, address = addr ValueError: 没有足够的值来解包(预期为 2,得到 1),Django Rest Framework

Python ValueError:没有足够的值可解包(预期3,得到1)

Python ValueError:没有足够的值可解包(预期3,得到2)

Python 3-ValueError:没有足够的值可解包(预期3,得到2)

ValueError: 没有足够的值来解包(预期为 2,得到 1)我该如何解决这个问题我刚刚尝试过

python3:没有足够的值来解包(预期为 2,得到 0)

Python-如何解决“ ValueError:没有足够的值要解压(预期2,得到1)”

ValueError:没有足够的值可解包(预期2,得到1)但我提供2个值

ValueError:没有足够的值可解包(预期为4,得到3)

ValueError:启动 celery worker 时没有足够的值来解包(预期为 3,得到 0)

ValueError:没有足够的值可解包(预期11,得到1)

ValueError:在字典上没有足够的值来解包(预期 4,得到 1)

想要找到轮廓-> ValueError:没有足够的值可解包(预期3,得到2),出现

cv.findContours()-ValueError:没有足够的值可解包(预期3,得到2)

Pyinstaller Kivy 应用程序 ValueError:没有足够的值来解包(预期 3,得到 2)

ValueError:没有足够的值来解包(预期 3,得到 2)(OpenCV)

ValueError:没有足够的值在 Pytorch 中解压(预期为 3,得到 2)

如何解决“ ValueError:没有足够的值要解压(预期2,得到1)”