我一直试图解决这个问题,但我不能。我有以下代码:
import json
def jsonblock(filename):
my_array = []
with open(filename) as f:
for line in f:
my_array.append(line)
p = " ".join(str(x) for x in my_array)
return p;
for i in jsonblock('P5.json'):
print(i)
和我的P5.json是
{
"signalPassed" : true,
"location" : {
"longitude" : 113.3910083760899,
"latitude" : 22.57224988908558
},
"phoneOsVersion" : "7.0.3",
"signalStdDev" : 4.139107,
"phoneModel" : "iPad",
}
我想要str格式的正常输出但是当我这样做时,我得到以下输出:
"
7
.
0
.
3
"
,
"
s
i
g
n
a
l
S
t
d
D
e
v
"
:
4
.
1
3
9
1
0
7
,
}
问题出在哪里?我怎样才能解决这个问题?
答案 0 :(得分:6)
您的函数jsonblock
返回一个字符串,即''.join(...)
的结果。对字符串进行迭代会产生单个字符,您可以在最后一个字符中逐个打印出来。
To"解决"你的直接问题,只是print jsonblock('P5.json')
而不是使用for循环。
但是,您可能想要做的是正确解析json。在这种情况下,请使用您已在顶部导入的json
库。
filename = 'P5.json'
with open(filename, 'rb') as f:
data = json.load(filename)
print data # data is a dictionary in this case