Python 从JSON文件检索响应

Python 从JSON文件检索响应,python,json,Python,Json,我试图从JSON文件中提取一些值,但它似乎不起作用。此外,当我试图添加print语句以查看它在哪里爆炸时,什么也不打印。有人能看出这不起作用的明显原因吗?我能想到的唯一一件事是,这与我最近从一台PC机切换到Mac机有关,文件存储为rtf而不是txt import glob2 import json fdr = glob2.glob('/Users/Lab-Justin/Desktop/CogStylesText/TextFiles/*.rtf') #insert all rtf file

我试图从JSON文件中提取一些值,但它似乎不起作用。此外,当我试图添加print语句以查看它在哪里爆炸时,什么也不打印。有人能看出这不起作用的明显原因吗?我能想到的唯一一件事是,这与我最近从一台PC机切换到Mac机有关,文件存储为rtf而不是txt

import glob2
import json

fdr = glob2.glob('/Users/Lab-Justin/Desktop/CogStylesText/TextFiles/*.rtf')    #insert all rtf files in folder into list

for dr in fdr:        #loop through file list
    print(dr)
    ending = str(dr[57:])     #cut filename from pathname
    pe = ending.replace('.rtf', '')    #add filename to path
    f_quest = '/Users/KraemerLab-Justin/Desktop/CogStylesText/CogStylesExcel/QuestEx/' + pe + '.csv'     #format the file as csv
    f_n = '/Users/Lab-Justin/Desktop/CogStylesText/TextFiles/' + pe            #access rtf file
    print(f_n)

    file_path = 'f_n'
    file_out = 'f_quest'
    with open(file_path) as f_in, open(file_out) as f_out:
        data = json.load(f_in)
    print(data.keys())  # list the dicts keys

    q = 'vviq'
    response = data[q]['response']
    f_out.write('response')    #write responses to new .csv file

您的代码没有输出任何内容,因为您在python脚本的目录中创建并打开了一个名为
f_n
的空文件,然后尝试用json模块加载它

这些是分配给字符串文字的变量,而不是您以前定义的变量

file_path = 'f_n'
file_out = 'f_quest'
这些是分配给系统上的路径的变量

我想你是想晚一点开门吧?如果是这样,那么前面的变量就完全没有意义了。您应该将这些变量赋给
open()
,但不要引用变量名


另外,
open()
默认为读取模式,因此当您尝试执行
f_out.write('response')
时,可能需要修复该问题,该问题应在
下使用
,否则文件将关闭,并且
'response'
是单词“response”的字符串文字而不是您在前一行中指定的
response
变量

这里的sql在哪里?我想您指的是“JSON”而不是“sql”?这些都是非常不同的东西。对了,这些文件也存储在SQL server上。抱歉搞混了。非常感谢你!!
f_quest = '/Users/KraemerLab-Justin/Desktop/CogStylesText/CogStylesExcel/QuestEx/' + pe + '.csv'     #format the file as csv
f_n = '/Users/Lab-Justin/Desktop/CogStylesText/TextFiles/' + pe            #access rtf file