Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.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 3中的JSON.dumps()将正确格式的JSON写入文件_Json_Python 3.x_Dictionary - Fatal编程技术网

使用Python 3中的JSON.dumps()将正确格式的JSON写入文件

使用Python 3中的JSON.dumps()将正确格式的JSON写入文件,json,python-3.x,dictionary,Json,Python 3.x,Dictionary,假设我有一本简单的字典,如下所示: a = {'animal' : 'fish', 'fruit' : 'apple','vehicle' : 'car'} b = jason.dumps(a) with open('output.json', 'w') as f: f.write(pprint.pformat(b)) {"animal": "fish", "fruit": "apple", "vehicle": "car"} 我希望将a转换为JSON并写入文件。如果我使

假设我有一本简单的字典,如下所示:

a = {'animal' : 'fish', 'fruit' : 'apple','vehicle' : 'car'}
b = jason.dumps(a) 
with open('output.json', 'w') as f:
        f.write(pprint.pformat(b))
{"animal": "fish", "fruit": "apple", "vehicle": "car"}
我希望将
a
转换为JSON并写入文件。如果我使用了
json.dumps()
,如下所示:

a = {'animal' : 'fish', 'fruit' : 'apple','vehicle' : 'car'}
b = jason.dumps(a) 
with open('output.json', 'w') as f:
        f.write(pprint.pformat(b))
{"animal": "fish", "fruit": "apple", "vehicle": "car"}
JSON文件
output.JSON
的内容变成:

'{"animal": "fish", "fruit": "apple", "vehicle": "car"}'
我希望实际拥有的(在文件中)没有引用,如下所示:

a = {'animal' : 'fish', 'fruit' : 'apple','vehicle' : 'car'}
b = jason.dumps(a) 
with open('output.json', 'w') as f:
        f.write(pprint.pformat(b))
{"animal": "fish", "fruit": "apple", "vehicle": "car"}
正确的编码方法是什么,这样我就可以得到所需的输出

提前谢谢

[编辑]:我需要文件中所需输出的原因是,我在加载文件时收到以下错误

>>> with open("output.json") as f:
...     data = json.load(f)
... 
Traceback (most recent call last):
  File "<stdin>", line 2, in <module>
  File "/Users/louis.kok/Analyses/devel/anaconda3/lib/python3.7/json/__init__.py", line 296, in load
    parse_constant=parse_constant, object_pairs_hook=object_pairs_hook, **kw)
  File "/Users/louis.kok/Analyses/devel/anaconda3/lib/python3.7/json/__init__.py", line 348, in loads
    return _default_decoder.decode(s)
  File "/Users/louis.kok/Analyses/devel/anaconda3/lib/python3.7/json/decoder.py", line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/Users/louis.kok/Analyses/devel/anaconda3/lib/python3.7/json/decoder.py", line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
以open(“output.json”)作为f: ... data=json.load(f) ... 回溯(最近一次呼叫最后一次): 文件“”,第2行,在 文件“/Users/louis.kok/analysis/devel/anaconda3/lib/python3.7/json/_init__.py”,第296行,已加载 parse_常量=parse_常量,object_pairs_hook=object_pairs_hook,**千瓦) 文件“/Users/louis.kok/analysis/devel/anaconda3/lib/python3.7/json/_init__.py”,第348行,加载 返回\u默认\u解码器。解码 文件“/Users/louis.kok/analysis/devel/anaconda3/lib/python3.7/json/decoder.py”,第337行,在decode中 obj,end=self.raw\u decode(s,idx=\u w(s,0.end()) 文件“/Users/louis.kok/analysis/devel/anaconda3/lib/python3.7/json/decoder.py”,第355行,原始解码 从None引发JSONDecodeError(“预期值”,s,err.value) json.decoder.JSONDecodeError:预期值:第1行第1列(字符0)
导入
json

import json
使用
json.dump

with open('output.json', 'w') as f:
    json.dump(a, f)
使用
json.load阅读它

with open("output.json") as f:
    data = json.load(f)
试试这个:

以open('task.json','w')作为f的
:
s=json.dumps(mydict,indent=2)
f、 写入(“%s\n%”(s))

这是一个有效的JSON字符串
“{”animal:“fish”,“fruit:“apple”,“vehicle:“car”}”
。为什么你需要它没有报价?阅读时使用
json.loads()
@bison72@Vishnudev我已经编辑了我的问题。我在加载文件时收到错误,但是没有引号,我可以加载它。我添加了一个答案。