如何在json文件中将“”更改为“”[重复]
Posted
技术标签:
【中文标题】如何在json文件中将“”更改为“”[重复]【英文标题】:How to change ' ' to " " in json file [duplicate] 【发布时间】:2021-03-25 06:24:56 【问题描述】:如何将 ' ' 更改为 " " ? 我需要使用来自 sqlalchemy 的数据编写 database.json
Data 是我的数据库的名称
all_data = Data.query.all()
data_schema = DataSchema(many=True)
output = data_schema.dump(all_data)
OutputJson = jsonify('products':output)
while True:
with open('database.json',"w") as file:
file.write(str('products': output))
with open('database.json',"r") as files:
FinalOutput = files.read()
return FinalOutput
但我的输出是这样的:
'products': [
'id': 0,
'name': 0,
'price': 0,
'quantity': 1
]
应该是这样的:
"products": [
"id": 1,
"name": "Aspirina",
"price": 100,
"quantity": 1
]
【问题讨论】:
return
的功能在哪里?
使用json.dumps
或json.dump
生成JSON,而不是str
。
另外,无论jsonify
可能已经在做正确的事情。你实际上并没有在任何地方使用OutputJson
。
【参考方案1】:
修改这部分:
with open('database.json',"w") as file:
file.write(str('products': output))
作为
import json
json_data =
with open('database.json',"r") as file:
json_data = json.load(file)
json_data['products'] = output
with open('database.json',"w+") as file:
json.dump(json_data)
【讨论】:
为什么要读取以写入模式打开的文件,为什么第二次要以读写模式打开文件? @chepner 编辑,先读,再写 我修好了!! with open('mercadopygo/database.json', 'w', encoding='utf-8') as file: json.dump('products': output, file, indent=4) 谢谢大家 @nikhouldan 如果这是已接受的答案,如果您能将其标记为这样,将不胜感激!以上是关于如何在json文件中将“”更改为“”[重复]的主要内容,如果未能解决你的问题,请参考以下文章
将数据从Json文件加载到Postgresql会导致:错误“重复键值违反唯一约束 - 已存在”。