我正在尝试将两个字符串变量附加到一个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:
然后将当前的理解内容与之合并:
最后将最终结果传递给
dumps
:请注意,如果发生冲突,这将用理解覆盖硬编码数据。您也可以更新理解结果:
第三种选择是使用dictionary unpacking,但在这种特定情况下,这似乎不是一种改进:
相关问题 更多 >
编程相关推荐