Python 如何将字符串附加到JSON文件

Python 如何将字符串附加到JSON文件,python,json,Python,Json,我试图将两个字符串变量附加到JSON文件中,但在实现这一点时遇到了问题 这是我的密码: with open('/tmp/' + thisFile, 'w') as csvfile: writer = csv.DictWriter(csvfile, fieldnames = ['sim_id', 'data'], delimiter = '\t', lineterminator = '\n') counter = 0 for issue in res

我试图将两个字符串变量附加到JSON文件中,但在实现这一点时遇到了问题

这是我的密码:

with open('/tmp/' + thisFile, 'w') as csvfile:
        writer = csv.DictWriter(csvfile, fieldnames = ['sim_id', 'data'], delimiter = '\t', lineterminator = '\n')
        counter = 0
        for issue in results.issues:
            counter += 1
            issueMainId = issue.main_id
            print('Writer written line ' + str(counter) + ' issue_id: ' + issueMainId)
            assignedFolderId = (issue.assigned_folder.decode('utf-8'))[:1500]
            print('Writer written line ' + str(counter) + ' folder: ' + assignedFolderId)
            for label in issue.labels:
                labelText = sim.get_label(label.get('id')).label[0]['text']
                print('Writer written line ' + str(counter) + ' Label: ' + labelText)
            folderText = sim.get_folder(flat_attr(issue.assigned_folder)).label[0]['text']
            print('Writer written line ' + str(counter) + ' Folder: ' + folderText)
            print('Writer written line ' + str(counter) + ' labels: ' +     '-'.join(str(v) for v in issue.labels))
            writer.writerow({
                'sim_id': issueMainId,
                'data': json.dumps({
                    a: flat_attr(getattr(issue, a)) for a in dir(issue) if a in attr_list
                })
            })
对于writerow()函数中的'data',我想添加两个属性,它们保存在上面的两个变量(folderText和labelText)中,因此我在数据字段中又得到了两个类似{“folderName”:folderText,“labelName”:labelText}的字段


任何人都知道如何做到这一点吗?

实际上,json.dumps的参数是一个dict理解,因此不能只向其中添加键/值对,因为它不是dict文本。您要做的是首先创建一个包含“硬编码”项的dict:

data={“folderName”:folderText,“labelName”:labelText}
然后将理解的当前内容合并到其中:

data.update((a,flat_attr(getattr(issue,a)),如果是in-attr_列表,则为in-dir(issue))
最后将最终结果传递给
转储文件

writer.writerow({
“sim_id”:ISSUEMAIID,
“数据”:json.dumps(数据)
})
注意,如果发生冲突,这将用理解覆盖硬编码数据。您也可以更新理解的结果:

数据={
答:如果在属性列表中,则在目录(问题)中为平面属性(getattr(issue,a))
}
数据['folderName']=folderText
数据['labelName']=labelText
第三种选择是使用,但在这种情况下,这似乎不是一种改进:

writer.writerow({
“sim_id”:ISSUEMAIID,
“数据”:json.dumps({
**{a:in-dir(issue)的flat_attr(getattr(issue,a)),如果a-in-attr_list},
“folderName”:folderText,
“labelName”:labelText
})
})

实际上,json.dumps的参数是一个dict理解,因此不能只向其中添加键/值对,因为它不是dict文本。您要做的是首先创建一个包含“硬编码”项的dict:

data={“folderName”:folderText,“labelName”:labelText}
然后将理解的当前内容合并到其中:

data.update((a,flat_attr(getattr(issue,a)),如果是in-attr_列表,则为in-dir(issue))
最后将最终结果传递给
转储文件

writer.writerow({
“sim_id”:ISSUEMAIID,
“数据”:json.dumps(数据)
})
注意,如果发生冲突,这将用理解覆盖硬编码数据。您也可以更新理解的结果:

数据={
答:如果在属性列表中,则在目录(问题)中为平面属性(getattr(issue,a))
}
数据['folderName']=folderText
数据['labelName']=labelText
第三种选择是使用,但在这种情况下,这似乎不是一种改进:

writer.writerow({
“sim_id”:ISSUEMAIID,
“数据”:json.dumps({
**{a:in-dir(issue)的flat_attr(getattr(issue,a)),如果a-in-attr_list},
“folderName”:folderText,
“labelName”:labelText
})
})

您能否提供输入JSON文件、预期输出并告诉我们什么是
结果
?结果是一个包含多个问题对象的对象。每个问题都有一个id、创建日期、状态以及属性列表中的其他此类属性。Inputfile(thisFile)是一个空的csv文件,我想在其中写入两列:第一列是“sim_id”,第二列是“data”。数据有许多json文件形式的属性,如:{“main_id”:“someMainIDhere”,“description”:“some description here”,“title”:“some title here”,“assigned_folder”:“somefolderiderhere},我想向上面保存在变量中的数据添加两个属性,即“labelText”和“folderText”“请提供输入JSON文件、预期输出,并告诉我们什么是
结果
?结果是一个包含多个问题对象的对象。每个问题都有一个id、创建日期、状态以及属性列表中的其他此类属性。Inputfile(thisFile)是一个空的csv文件,我想在其中写入两列:第一列是“sim_id”,第二列是“data”。数据有许多json文件形式的属性,如:{“main_id”:“someMainIDhere”,“description”:“some description here”,“title”:“some title here”,“assigned_folder”:“somefolderiderhere},我想向上面保存在变量中的数据添加两个属性,即“labelText”和“folderText”“正是我需要的,完美的答案!非常感谢。正是我需要的,完美的答案!非常感谢。