从json打印

时间:2019-06-15 01:51:26

标签: 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 :

1 个答案:

答案 0 :(得分:1)

此问题与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循环中)?