目标:获取 CSV 文件中的所有行(至少 1 行及更多行),添加修复字符串并使用 JSON 数组中的变量。
对不起,如果问题不相关。我不确定要问什么正确的问题。
我希望“entryList”格式如下所示,以便成功发布 JSON 对象。
但是,以下方法均无效。
"entryList": [
{"entry": ["value_from","csv",""]},
{"entry": ["value_from","csv",""]},
{"entry": ["value_from","csv",""]}
]
转储 JSON(完整格式):
x={
"act.addEntries": {
"act.authToken": "test123",
"act.resourceId": "asdasda=123asd1",
"act.entryList": {
"columns": [
"domainName","threatInfo","riskScore"
],
"entryList": [
VARIABLE
]
}
}
}
"""
Sample CSV file
domainName,threatInfo,riskScore
xxx.xxx.com,Test1,
yyy.yyy.com,Test2,
zzz.zzz.com,Test3,
"""
# CSV to List
domainList=[]
with open('Desktop/domainMatches.csv', 'r') as file:
reader = csv.reader(file)
col = next(reader)
方法 1 - 字符串格式化
问题:JSON 转储仅显示 1 个 entryList 值。我无法获得正确的方法来逃避 {},因此它会导致不想要的 JSON 对象
for data in reader:
domainList.append(data)
line= '{{"entry": {}}}'.format(data)
print(line)
**OUTPUT:**
{"entry": ['xxx.xxx.com', 'Test1', '']}
{"entry": ['yyy.yyy.com', 'Test2', '']}
{"entry": ['zzz.zzz.com', 'Test3', '']}
...
...
"entryList": [
{{{}}}.format(line)
]
**OUTPUT - JSON Dumps:**
{
"act.addEntries": {
"act.authToken": "test123",
"act.resourceId": "asdasda=123asd1",
"act.entryList": {
"columns": [
"domainName",
"threatInfo",
"riskScore"
],
"entryList": [
"{{\"entry\": ['zzz.zzz.com', 'Test3', '']}}"
]
}
}
}
方法 2 - + 连接
这里也有太多问题。必要时提供建议
line = ""
for value in reader:
line+="{"
line+=""" "entry": """
line+=str(value)
line+="},\n"
**OUTPUT:**
{"entry": ['xxx.xxx.com', 'Test1', '']},
{"entry": ['yyy.yyy.com', 'Test2', '']},
{"entry": ['zzz.zzz.com', 'Test3', '']},
...
...
"entryList": [
"""+line+"""
]