Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:为什么字符串的每个字符都在换行符上_Python_Json - Fatal编程技术网

Python:为什么字符串的每个字符都在换行符上

Python:为什么字符串的每个字符都在换行符上,python,json,Python,Json,我一直试图解决这个问题,但我做不到。我有以下代码: 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.

我一直试图解决这个问题,但我做不到。我有以下代码:

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
,


}

问题在哪里?我怎样才能解决这个问题

函数
jsonblock
返回一个字符串,即
''的结果。join(…)
。对字符串进行迭代会生成单个字符,您可以在末尾的for循环中逐个打印这些字符

要“解决”眼前的问题,只需打印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

p
以字符串形式返回。请尝试使用
json.loads(文件名)
和/或
json.dumps(文件名)
导入
json
模块,然后再也不尝试使用它,这可能是重复的?