【发布时间】:2016-01-24 23:40:24
【问题描述】:
需要帮助。 有一个名为 arglist 的数据列表,例如: ['dlink', 'des', '1210', 'c', 24]
还有这段代码:
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
它给出:
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
怎么了?
【问题讨论】:
-
您正在尝试
loads文件对象,而不是字符串。如果你想使用文件而不是字符串,你应该只使用json.load和json.dump。 -
调试的第一条规则是假设错误告诉你字面上的真相。它期待一个字符串,但你没有给它一个。所以开始你的调查,为什么你要传递不是字符串的东西,或者为什么你在有其他东西时使用需要字符串的函数。
-
你说得对。如此明显。感谢您的帮助。
标签: python json python-2.7