2014-06-11 1 views
0

REST URL이 있습니다 큰 JSON 개체를 사전으로 반환합니다.키가 정적이고 터미널에서 값이 동적 인 인쇄 사전

나는 그것을 다음과 같이해야합니다 나는 기본 인쇄 키 값을하고있어

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

그러나 여기에 도전.

ID : 1 이름 : bobert 현금 : 100

^^^ 내가 "가 화면에 유지하기 위해 (ID, 이름, 현금), 만 값 (1, bobert을 키 필요 (100)) 그 코드는 기본적인 생각이다. 이것은 진행률 표시 줄과 같은 한 줄을 업데이트하는 문제와 유사하지만, 여러 라인에 대한

. 각각의 새로운 요청

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

를 업데이트,하지만 난이 필요합니다 유지할 키 및 업데이트 할 값

나는 이것에 대해 너무 복잡하다고 생각하는 저주를 보았습니다. 또한 sys.stdout.write를 보았지만 한 번에 한 줄만 작동하는 것처럼 보입니다. printline(string)

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

전화 :

+1

당신은 [캐리지 리턴]을 사용할 수를 (http://en.wikipedia.org/wiki/Carriage_return)'\ r'은 각 업데이트에서, 단순히에 반환 내가 너의 욕망을 정확하게 이해하고 있다고 가정하면서, 선의 시작. – nerdwaller

답변

0

이것은 내가 무엇을 사용 기본적으로. 일반 print 문을 사용하여 새 줄로 이동하십시오. 그렇지 않으면 연속적인 printline 호출은 원하는대로 반복해서 동일한 행을 겹쳐 쓰게됩니다. 이것은 유닉스와 같은 터미널에서 작동합니다 : \x1b[K 비트는 줄 끝까지 삭제하는 ANSI 이스케이프 코드이고 \r은 줄의 시작 부분으로 돌아갑니다 (다음 printline이 현재 줄을 덮어 씁니다).

+0

이것은 한 줄로 작동합니다. OP는 한 번에 여러 줄을 업데이트 할 수 있기를 원합니다. 물론, 한 번에 많은 줄을 업데이트하는 것은 인쇄 된 문자열 안에 줄 바꿈을 정확히 추가하는 문제 일뿐입니다. – aruisdante

-1

그냥 줄 바꿈 추가 :

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

그러면 OP에서 원하는 내용을 달성하지 못해 화면의 기존 데이터를 덮어 쓸 수 있습니다. – aruisdante

+0

아, 내 사과, 질문에 한 줄은 혼란을 야기했다. 나는 응답하기 전에 완전히 이해할 수있는 알림으로 남겨 두겠습니다. 만약 내가 할 수 있으면 내 대답을 downvote 줄 –

관련 문제