Potrzebujesz pomocy. Mieć listę danych o nazwie arglist, przykład: ["dlink", "des", "1210", "c", 24] < - to, co "drukuje" widoki.Python TypeError: oczekiwany ciąg lub bufor
I ten kod:
sw_info ={"Brand":arglist[0],
"Model":arglist[1],
"Hardware":arglist[2],
"Software":arglist[3],
"Portsnum":arglist[4]}
print json.dumps(sw_info, open("test", "w"))
z = json.loads(open("test", "r"))
print s
Daje:
Traceback (most recent call last):
File "parsetest.py", line 34, in <module>
z = json.loads(open("test", "r"))
File "/usr/lib64/python2.6/site-packages/simplejson/__init__.py", line 307, in loads
return _default_decoder.decode(s)
File "/usr/lib64/python2.6/site-packages/simplejson/decoder.py", line 335, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
TypeError: expected string or buffer
Co się stało?
Próbujesz 'ładować' obiekt pliku, a nie ciąg znaków. Powinieneś po prostu użyć 'json.load' i' json.dump', jeśli chcesz pracować z plikami zamiast ciągów. – geoffspear
Pierwszą zasadą debugowania jest założenie, że błąd mówi ci dosłowną prawdę. Oczekuje ciągu, ale go nie dajesz. Rozpocznij więc badanie od tego, dlaczego przekazujesz coś, co nie jest ciągiem znaków lub dlaczego używasz funkcji, która wymaga ciągu, gdy masz coś innego. –
Masz rację. Tak oczywiste. Dzięki za pomoc. – Jetpylot