Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/311.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 从json打印_Python_Json - Fatal编程技术网

Python 从json打印

Python 从json打印,python,json,Python,Json,我正在尝试从Json文件打印标签。我的程序目前只打印最后一个json文件 当我运行程序时,我试图在json文件中打印出名称。这就是我目前得到的 inventoryFileNames = ["REID_1F_20171004.json", "REID_2F_20171004.json", "REID_3F_20171004.json"] itemNameToInventoryItem = {} for inventoryFileName in inventoryFileNames: i

我正在尝试从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'], ":")
请注意,第一个
打印
for
循环的“外部”(在同一缩进级别上)和第二个
打印
现在在
for
循环的“内部”(缩进和缩进)?这意味着第一个
print
语句将执行一次以提供标题,而第二个
print
语句将对
inventoryFileNames
中的每个项目执行


如果保持该结构,则可以将
输入
命令放回。只要问问你自己-你想输入一次
吗(如果是这样的话,把它放在
for
循环之外),还是想输入
inventoryFileNames
中的每个项目(如果是这样的话,把它放在
for
循环之内)?

你是在循环中定义inventoryFileNames,循环通过inventoryFileNames中的元素。这将产生一个错误,因为当'for'语句引用InventoryFileName时未定义它。您确定提供了正确的代码吗?Idef main():inventoryFileNames=[“REID_1F_20171004.json”,“REID_2F_20171004.json”,“REID_3F_20171004.json”]itemNameToInventoryItem={}而sortChoice!='问:MachineSTock=input('您想要(m)机器报告还是(i)库存报告?:')##############################好的,下面是q':MachineSTock=input('您想要(m)机器报告还是(i)库存报告?:')如果MachineSTock='m':inventoryFile=open(inventoryFileName,'r')inventoryData=json.loads(inventoryFile.read())打印('Label Pct Seld Sales')打印(库存数据['machine_Label'],“:”)机器标签打印出上面3个名称中的1个为loop定义inventoryFileNames它只打印最后一个json文件,因为在文件读取循环中,您将
inventoryData
分配给当前文件的内容,这会丢弃
inventoryData
的先前值。Heath……你真是疯了!!!!马上修复!!!!我是新来的代码,我总是做东西落后。我有元素在那里,但我的命令总是顶起来。我在学习。谢谢家伙!!!