【发布时间】:2021-04-05 08:09:39
【问题描述】:
所以我有一个 Tampermonkey 脚本正在运行。该脚本使用存储特定过滤器的 json 文件。我必须每天大约三次手动更新这些过滤器的一些值。现在我留下了这个 json 文件,它看起来有点糟糕,编辑起来很痛苦,我将在下面展示它的一部分。
{
"data": {
"DAVID SILVA RB HUNT": "s{\"searchCriteria\":{\"criteria\":{\"_acquiredDate\":\"\",\"_category\":\"any\",\"_position\":\"any\",\"_sort\":\"desc\",\"_type\":\"player\",\"_untradeables\":\"\",\"_zone\":-1,\"club\":-1,\"count\":21,\"defId\":[],\"excludeDefIds\":[],\"isExactSearch\":false,\"league\":-1,\"level\":\"any\",\"maskedDefId\":168542,\"maxBid\":0,\"maxBuy\":120000,\"minBid\":700,\"minBuy\":0,\"nation\":-1,\"offset\":0,\"playStyle\":266,\"rarities\":[6],\"sortBy\":\"value\",\"subtypes\":[]},\"playerData\":{\"id\":168542,\"firstName\":\"David Josué\",\"lastName\":\"Jiménez Silva\",\"commonName\":\"David Silva\",\"rating\":86}},\"abSettings\":{\"buyPrice\":\"119000\",\"sellPrice\":\"131000\",\"minDeleteCount\":\"50\",\"waitTime\":\"7-15\",\"maxPurchases\":\"1\",\"randMinBid\":\"2000\",\"useRandMinBid\":true,\"telegramBotToken\":\"1499673950:AAFI3vtBhZ72BlMlCbF5qdIp8cptoR_TeyI\",\"telegramChatID\":\"1253533225\",\"telegramBuy\":\"A\",\"notificationEnabled\":true,\"soundEnabled\":true}}",
"DAVID SILVA RB SHADOW": "s{\"searchCriteria\":{\"criteria\":{\"_acquiredDate\":\"\",\"_category\":\"any\",\"_position\":\"any\",\"_sort\":\"desc\",\"_type\":\"player\",\"_untradeables\":\"\",\"_zone\":-1,\"club\":-1,\"count\":21,\"defId\":[],\"excludeDefIds\":[],\"isExactSearch\":false,\"league\":-1,\"level\":\"any\",\"maskedDefId\":168542,\"maxBid\":0,\"maxBuy\":120000,\"minBid\":650,\"minBuy\":0,\"nation\":-1,\"offset\":0,\"playStyle\":268,\"rarities\":[6],\"sortBy\":\"value\",\"subtypes\":[]},\"playerData\":{\"id\":168542,\"firstName\":\"David Josué\",\"lastName\":\"Jiménez Silva\",\"commonName\":\"David Silva\",\"rating\":86}},\"abSettings\":{\"buyPrice\":\"119000\",\"sellPrice\":\"131000\",\"minDeleteCount\":\"50\",\"waitTime\":\"7-15\",\"maxPurchases\":\"1\",\"randMinBid\":\"2000\",\"useRandMinBid\":true,\"telegramBotToken\":\"1499673950:AAFI3vtBhZ72BlMlCbF5qdIp8cptoR_TeyI\",\"telegramChatID\":\"1253533225\",\"telegramBuy\":\"A\",\"notificationEnabled\":true,\"soundEnabled\":true}}",
"MAHREZ IF HUNT": "s{\"searchCriteria\":{\"criteria\":{\"_acquiredDate\":\"\",\"_category\":\"any\",\"_position\":\"any\",\"_sort\":\"desc\",\"_type\":\"player\",\"_untradeables\":\"\",\"_zone\":-1,\"club\":-1,\"count\":20,\"defId\":[],\"excludeDefIds\":[],\"isExactSearch\":false,\"league\":-1,\"level\":\"any\",\"maskedDefId\":204485,\"maxBid\":0,\"maxBuy\":117000,\"minBid\":0,\"minBuy\":0,\"nation\":-1,\"offset\":0,\"playStyle\":266,\"rarities\":[3],\"sortBy\":\"value\",\"subtypes\":[]},\"playerData\":{\"id\":204485,\"firstName\":\"Riyad\",\"lastName\":\"Mahrez\",\"commonName\":null,\"rating\":85}},\"abSettings\":{\"buyPrice\":\"113000\",\"sellPrice\":\"125000\",\"minDeleteCount\":\"50\",\"waitTime\":\"7-15\",\"maxPurchases\":\"1\",\"minRate\":\"86\",\"randMinBid\":\"2000\",\"useRandMinBid\":true,\"telegramBotToken\":\"1499673950:AAFI3vtBhZ72BlMlCbF5qdIp8cptoR_TeyI\",\"telegramChatID\":\"1253533225\",\"telegramBuy\":\"A\",\"notificationEnabled\":true,\"soundEnabled\":true}}",
"MAHREZ IF SHADOW": "s{\"searchCriteria\":{\"criteria\":{\"_acquiredDate\":\"\",\"_category\":\"any\",\"_position\":\"any\",\"_sort\":\"desc\",\"_type\":\"player\",\"_untradeables\":\"\",\"_zone\":-1,\"club\":-1,\"count\":21,\"defId\":[],\"excludeDefIds\":[],\"isExactSearch\":false,\"league\":-1,\"level\":\"any\",\"maskedDefId\":204485,\"maxBid\":0,\"maxBuy\":117000,\"minBid\":1700,\"minBuy\":0,\"nation\":-1,\"offset\":0,\"playStyle\":268,\"rarities\":[3],\"sortBy\":\"value\",\"subtypes\":[]},\"playerData\":{\"id\":204485,\"firstName\":\"Riyad\",\"lastName\":\"Mahrez\",\"commonName\":null,\"rating\":85}},\"abSettings\":{\"buyPrice\":\"113000\",\"sellPrice\":\"125000\",\"minDeleteCount\":\"50\",\"waitTime\":\"7-15\",\"maxPurchases\":\"1\",\"minRate\":\"86\",\"randMinBid\":\"2000\",\"useRandMinBid\":true,\"telegramBotToken\":\"1499673950:AAFI3vtBhZ72BlMlCbF5qdIp8cptoR_TeyI\",\"telegramChatID\":\"1253533225\",\"telegramBuy\":\"A\",\"notificationEnabled\":true,\"soundEnabled\":true}}",
正如我所说,这只是其中的一部分。它像这样延伸了大约 200 行。每行我必须编辑 3 个值; “maxBuy”、“buyPrice”和“sellPrice”。因为文件是这样格式化的,所以需要很长时间。我尝试将其转换为 csv 进行编辑,然后再转换回 json,但这并没有真正起作用,因为我认为的格式。
非常感谢任何有关如何更轻松地编辑这些值的提示!
编辑:我还尝试以某种方式将 json 文件绑定到数据库以便于编辑,但还是没有运气。然后我尝试使用 python 对其进行编辑,但似乎没有比仅仅浏览/滚动每一行更有效。
【问题讨论】:
-
您的意思是使用文本编辑器手动编辑文件,而不是使用一段 JavaScript 代码以编程方式编辑它吗?我想说这里的问题不是 JSON,而是自定义(?)内部格式。如果您已经在使用 JSON,为什么不一直使用它呢?
-
如果数据是通过脚本生成的,那么更新它的责任也应该属于脚本。手动赶不上,既费时又容易出错。
-
我可以手动执行,但由于它不是我的脚本,我无法控制格式的外观。它只是输出这个文件。如果有一种使用 JS 进行编辑的方法,我完全愿意接受。我想到的是一些简单的事情,比如在 excel 中打开它然后编辑特定值并保存并转换回 json,因为脚本使用该格式的 json 文件,如果这有意义的话?
标签: javascript json database data-entry