2014-05-20 2 views
0

당 하나 개의 문자 ...라인이 코드를 실행할 때마다

import json, urrlib2 
res = urrlib2.urlopen('http://website.com/data.json') 
data = json.load(res) 
for line in json.dumps(data["specific"]["data"], sort_keys=True, indent=0): 
    print line 

모든 문자가 새 줄에 인쇄를 반환합니다. 나는 python2.7을 사용하고 있으며, 실제로 생각이 나지 않습니다. for 문 앞에 데이터를 인쇄 할 때 멋지게 형식화 된 목록을 얻을 수 있기 때문에 그렇게해서는 안됩니다.

+0

'json.dumps'는 문자열을 생성합니다. 문자열을 반복 할 때는 문자를 사용합니다. 왜'.dumps'를 사용하고 있습니까? – jonrsharpe

+0

@jonrsharpe 덤프는 항상 적어도 두 개의 인수가 필요하다는 오류를 던집니다. 왜냐하면 덤프가 두 개 이상을 제공한다는 사실에도 불구하고. 아마도 덤프와 동일하게 작동합니까, 아니면 잘못된 것을 읽고 있습니까? – user3656897

+0

'json.dumps (obj, ...)'는 형식화 된 문자열을 생성합니다; 'json.dump (obj, f, ...)'는 문자열을 파일에 씁니다 (두 번째 ** 위치 ** 인수). 무엇을 성취하려고합니까? 내용을 반복하고 싶다면'data [ 'specific'] [ 'data'] :'행에'for '를 사용하십시오. – jonrsharpe

답변

0

당신은 사용하여 데이터를 얻을 필요가 읽어

data = res.read() 
data = json.load(data) 
1

json.dumps(obj)json.dump(obj, file)을 사용하여 파일에 기록 할 수있는 (포맷 된 문자열로 obj으로 바뀔 것이다 당신이 문자열을 반복하면 반복. 그 문자를 통해 대신

>>> for line in "abc": 
    print(line) 


a 
b 
c 

, 난 당신이 예를 들어, 객체의 내용을 반복 할 생각 :

for line in data["specific"]["data"]: 
    print line 
관련 문제