gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 21:10:09 26 4
gpt4 key购买 nike

我正在尝试将两个字符串变量附加到 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() 函数中的“数据”,我想添加两个属性,它们保存在上面的两个变量中(folderText 和 labelText),因此我在数据字段中又得到了两个字段,类似于 {"文件夹名称”:文件夹文本,“标签名称”:标签文本}

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

最佳答案

事实上,json.dumps 的参数是一个字典理解,所以你不能只向它添加键/值对,因为它不是一个字典文字。您要做的就是首先创建一个包含“硬编码”项目的字典:

data = {"folderName": folderText, "labelName": labelText}

然后将推导式的当前内容合并到其中:

data.update((a, flat_attr(getattr(issue, a))) for a in dir(issue) if a in attr_list)

最后将最终结果传递给dumps:

writer.writerow({
'sim_id': issueMainId,
'data': json.dumps(data)
})

请注意,如果发生冲突,这将用推导式覆盖硬编码数据。您也可以更新理解的结果:

data = {
a: flat_attr(getattr(issue, a)) for a in dir(issue) if a in attr_list
}
data['folderName'] = folderText
data['labelName'] = labelText

第三种选择是使用 dictionary unpacking ,但这在这个特定情况下似乎并不是一个改进:

writer.writerow({
'sim_id': issueMainId,
'data': json.dumps({
**{ a: flat_attr(getattr(issue, a)) for a in dir(issue) if a in attr_list },
'folderName': folderText,
'labelName': labelText
})
})

关于python - 如何将字符串附加到 JSON 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55122877/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com