打印字典,其中键是静态的,并且值在终端中是动态的

时间:2014-06-11 02:06:07

标签: python curses

我有一个REST URL 它返回一个大型JSON对象作为字典。

{"id": 1, "name" : bobert, "cash" : 100}

我正在做基本的打印键,价值,但这是挑战:

我需要它看起来像这样。

id:1 姓名:博伯特 现金:100

^^^我需要键和#34;(id,name,cash)才能在屏幕上保留,只有值(1,bobert,100)才能随每个新请求更新。

这类似于更新单行(如进度条)但多行更新的问题。

for keys, values in my_resp.items():
  print ('  {}  =  {}  '.format(keys, values))

该代码是基本思想,但我需要密钥才能持久化,并且需要更新值。

我看过诅咒(我觉得这太复杂了) 并且还查看了sys.stdout.write,但它一次只能用于1行。

2 个答案:

答案 0 :(得分:0)

这基本上就是我使用的:

def printline(line):
    sys.stdout.write(line + "\x1b[K\r")
    sys.stdout.flush()

致电printline(string)。使用常规print语句移至新行。否则,连续printline次调用将根据需要重复覆盖同一行。这适用于类UNIX的终端:\x1b[K位是ANSI转义码,它删除到行尾,\r移回行的开头(所以下一个{{ 1}}将覆盖当前行。)

答案 1 :(得分:-1)

只需添加换行符:

for keys, values in my_resp.items():
  print ('  {}  =  {}  '.format(keys, values))
print "\n"