对于json对象中的行,每行返回一个字符

时间:2014-05-20 13:45:57

标签: python

每当我执行此代码时......

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 line语句之前打印数据时,我得到了一个格式很好的列表。

2 个答案:

答案 0 :(得分:1)

json.dumps(obj)会将obj转换为格式化字符串(可以使用json.dump(obj, file)将其写入文件。当您遍历字符串时,会迭代其字符:< / p>

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


a
b
c

相反,我认为你想迭代对象的内容,例如:

for line in data["specific"]["data"]:
    print line

答案 1 :(得分:0)

您需要使用read获取数据:

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