【发布时间】:2018-08-08 18:45:01
【问题描述】:
# -*- coding: utf-8 -*-
import json
from pprint import pprint
drink_list = [23,601,633,673,607,662,6622,6014,6104,615,038,606,607,627,6094]
filename = (r'C:\Users\desktop\pizza\123template.json')
with open(filename, 'r') as f:
data = f.read()
try:
template = json.loads(data)
except Exception:
# this file can also be here
print('json exception')
raise
for output in drink_list:
print(output)
temp = template.copy()
temp["meta"]["sodanumber"] = output
with open(r'C:\Users\desktop\pizza\123\{}.json'.format(output, indent=40), 'w', encoding='cp1252') as f:
data = json.dumps(temp)
f.write(data)
# pprint.pprint(temp, width=60)
IndentationError: unindent 不匹配任何外部缩进级别。
但我认为这不仅仅是一个简单的缩进。我可以让我的控制台更改格式,但需要在实际输出文件中更改格式。但是我应该在哪里将我的额外格式添加到我的“with open”行中?
已经阅读了 4 个小时的材料和简单的示例,但 pprint 是否完成了大部分工作?
当前的输出是大量的工作包装文本。输出需要如下所示。我怎样才能让它看起来像这样?:
{
"meta": {
"drinkNumber": 662,
"effectiveDate": "2016-10-12 16:00:31",
"documentType": "checkout-device"
},
"documents": [
{
"code": "Checkout2",
"name": "Printer 2",
"port": "COM2",
"type": "LABEL",
当前输出:
{ "meta": { "drinkNumber": 662, "effectiveDate": "2016-10-12 16:00:31", "documentType": "checkout-device" },"documents": [{
"code": "Checkout2","name": "Printer 2","port": "COM2","type": "LABEL",
【问题讨论】:
-
您能否提供一个带有问题的实际输出示例?最好使用与您的“所需格式”示例相同的值。
-
@FloMei 已更新为当前输出
标签: python json formatting output pprint