【发布时间】:2020-10-13 20:50:07
【问题描述】:
with open('data.txt', 'r') as file:
dat2 = file.read()
post2 = {
"id": 5,
"method": "set",
"params": [
{
"data": [
dat2
],
"url": "/config/url"
},
]
"session": sessionkey,
"verbose": 1
}
我正在尝试读取的文件中的数据看起来如此......
{"name": "Host1","type": "ipmask","subnet": ["0.0.0.0","255.255.255.255"],"dynamic_mapping": null},
{"name": "Host2","type": "ipmask","subnet": ["0.0.0.0","255.255.255.255"],"dynamic_mapping": null}, 我正在尝试读取此数据并将其插入到变量中以将其放入 post2 以进行请求。到目前为止我尝试过的包括:读取文件并将null 替换为None,以便python 可以读取它并删除所有空格。我尝试过使用json.loads()、json.load() 和json.dumps(),但似乎没有任何效果。当我尝试使用json.load() 时,出现以下错误。
File "C:\Users\user\AppData\Local\Programs\Python\Python37\lib\json\__init__.py", line 296, in load
parse_constant=parse_constant, object_pairs_hook=object_pairs_hook, **kw)
File "C:\Users\user\AppData\Local\Programs\Python\Python37\lib\json\__init__.py", line 348, in loads
return _default_decoder.decode(s)
File "C:\Users\user\AppData\Local\Programs\Python\Python37\lib\json\decoder.py", line 340, in decode
raise JSONDecodeError("Extra data", s, end)
json.decoder.JSONDecodeError: Extra data: line 2 column 18 (char 145)
将数据放入 dat2 后,它会以“{data}”而不是 {data} 的形式插入 post2。也是的,我知道file.read() 会将文件的内容读入字符串,但我一直在尝试一切,因为我一直在努力使用 json 取得成功。我已经被困在我的代码的这一部分最长时间了,我会很感激和想法。注意:我查看了多个 Python/JSON 帖子以阅读 Python,但没有任何效果,因此请不要标记为重复。
【问题讨论】:
-
只是一个想法...我会尝试通过说 dat2 = file.readlines() 将 dat2 定义为一个列表。然后,在 post2 中,关键“数据”可以在列表中。