python - 从 json 打印
问题描述
我正在尝试从 Json 文件中打印出标签。我的程序目前只打印最后一个 json 文件。
当我运行程序时,我试图在 json 文件中打印出名称。这就是我到目前为止所得到的
inventoryFileNames = ["REID_1F_20171004.json", "REID_2F_20171004.json", "REID_3F_20171004.json"]
itemNameToInventoryItem = {}
for inventoryFileName in inventoryFileNames:
inventoryFile = open( inventoryFileName, 'r' )
inventoryData = json.loads( inventoryFile.read() )
while sortChoice != 'q':
MachineSTock = input('Would you like the (m) machine report or the (i)inventory report?:')
if MachineSTock == 'm':
inventoryFile = open( inventoryFileName, 'r' )
inventoryData = json.loads( inventoryFile.read() )
print('Label Pct Sold Sales ' )
print (inventoryData['machine_label'], ":")
我希望它打印出来:
Label
REID_1F :
REID_2F :
REID_3F :
解决方案
这个问题与json无关。如果你想遍历所有文件并从每个文件中打印一些东西,那么你的print
语句需要在你的for
循环中。
尝试这个。我已经删除了一些与您的问题无关的方面。
inventoryFileNames = ["REID_1F_20171004.json", "REID_2F_20171004.json", "REID_3F_20171004.json"]
itemNameToInventoryItem = {}
print('Label Pct Sold Sales ' )
for inventoryFileName in inventoryFileNames:
inventoryFile = open( inventoryFileName, 'r' )
inventoryData = json.loads( inventoryFile.read() )
print (inventoryData['machine_label'], ":")
注意第一个print
是如何在循环“外部”(高于和在同一缩进级别),for
而第二个print
现在是“内部”(缩进和低于)for
循环?这意味着第一条print
语句将执行一次以提供标题,而第二print
条语句将针对inventoryFileNames
.
如果你保持这个结构,你可以把你的input
命令放回去。问问你自己——你想要input
一次(如果是的话把它放在for
循环之外)还是对每个项目inventoryFileNames
(如果是的话把它放在for
循环内)?
推荐阅读
- tuples - OCaml 中 4 元素浮点元组的总和
- django - 如何避免自引用多对多关系中的无限递归
- xml - 使用嵌套的 For Each 和 If 从不同的子节点返回节点值
- python - 为什么可变变量的重新定义不会传播回调用它们的函数?
- c++ - 以向量/列表迭代器为键创建地图
- javascript - 在文本上浮动透明 PNG
- sql - 从具有最大日期的多个连接中获取聚合
- .net - .NET Core 2.2 - 实体框架 - 自定义分配 [NotMapped] 模型属性 w/ DbSet.FromSql()
- python - 如何调试说构造函数不带参数的错误
- sql - 无法弄清楚这个查询