我有一个带2个参数的函数; dict- _tInput和list- _order。
目的是能够订购返回的数据进行打印:
tOrderReq = [1, 4, 5, 2]
tReturnData = tOut(hInput[0], (tOrderReq))
print("%s %s %s %s" % tReturnData)
但是我收到以下错误:
Traceback (most recent call last):
File "C:\local\mdev.py", line 76, in <module>
TypeError: not enough arguments for format string
我不明白我需要改变什么来让它工作,我怀疑这是一个相当基本的东西,通过我的新手Python知识和我对元组,列表和dicts的理解。功能如下 - 顺便提一下,如果有关于如何改进此代码的任何提示,那么我就是全部的耳朵。
def tOut(_tInput, _order=[]):
_tOutput = []
_tOutput.append(_tInput['id'])
_tOutput.append(_tInput['created_at'].encode('utf-8'))
_tOutput.append(_tInput['text'].encode('utf-8'))
_tOutput.append(_tInput['user']['id'])
_tOutput.append(_tInput['user']['screen_name'].encode('utf-8'))
_tOutput.append(_tInput['user']['name'].encode('utf-8'))
_tReturn = []
for x in _order:
_tReturn.append(_tOutput[x])
return (_tReturn)
非常感谢
答案 0 :(得分:0)
IIUC,你的问题是Python需要一个带%
的元组 - 插值:
>>> tReturnData = [1,2,3,4]
>>> print("%s %s %s %s" % tReturnData)
Traceback (most recent call last):
File "<ipython-input-13-a0f54ded128d>", line 1, in <module>
print("%s %s %s %s" % tReturnData)
TypeError: not enough arguments for format string
>>> print("%s %s %s %s" % tuple(tReturnData))
1 2 3 4
如果(你似乎是)你正在使用Python 3,你可以简单地写
>>> print(*tReturnData)
1 2 3 4
或使用str.format
(这是更精细控制的首选现代风格,我承认我们不会在这里使用):
>>> print("{} {} {} {}".format(*tReturnData))
1 2 3 4