【问题标题】:json.decoder.JSONDecodeError: Expecting value: line 2 column 1 (char 1) TinyDBjson.decoder.JSONDecodeError:期望值:第 2 行第 1 列(字符 1)TinyDB
【发布时间】:2020-11-13 20:10:18
【问题描述】:

机器人必须接受用户的响应并将每个响应发送到文本文件,读取每个响应并将其发送到数据库,将响应写入数据库时​​发生错误,但在此开始时没有错误,机器人工作正常。 我想补充一点,代码没有变化,只是停止工作。

import telebot,json
from tinydb import TinyDB, Query

bot = telebot.TeleBot('')

@bot.message_handler(commands = ['start'])
def fh(m):
    bot.send_message(m.chat.id,'jik')


@bot.message_handler(commands = ['otz']) 
def dff(m):
    
    bot.send_message(m.chat.id,'day') 
    bot.register_next_step_handler(m, dabv) 

def dabv(m):
    Ssilha = str(m.text)
    hbn = open(r'C:\Users\Admin\Desktop\Новая папка (2)\ssil.txt','w')
    hbn.write(Ssilha)
    
    bot.send_message(m.chat.id, 'day ots')
    bot.register_next_step_handler(m, otsifsek) 

def otsifsek(m):

    Otsef = str(m.text)

    hbnv = open(r'C:\Users\Admin\Desktop\Новая папка (2)\com.txt', 'w')
    hbnv.write(Otsef)
    bot.send_message(m.chat.id, str(Otsef))

    bot.register_next_step_handler(m, ots)

def ots(m):
    hbnn = open(r'C:\Users\Admin\Desktop\Новая папка (2)\ssil.txt', 'r')
    g = str(hbnn.read())
    h22 = open(r'C:\Users\Admin\Desktop\Новая папка (2)\com.txt', 'r')
    gnv = str(h22.read())

    ggg = {}
    ggg[g] = gnv
    print(ggg)
    dmc = Query()


    ggg = json.dumps(ggg)
    ggg = json.loads(ggg)
    print(ggg)
    ghh = [ggg]

    g123 = TinyDB(r'C:\Users\Admin\Desktop\Новая папка (2)\bd.txt')
    g123.insert(ggg)






    k = [g123.search(dmc.g == ghv)]
    bot.send_message(m.chat.id, k[0][g])

bot.polling()

【问题讨论】:

  • 错误在哪里?能否包含整个回溯消息?
  • 如果不了解更多信息,我们将无法解决这个问题。此行是否失败:ggg = json.loads(ggg)?不良数据是什么样的?错误显示“第 2 行第 1 列” - 但我们应该如何知道这些行中的内容?

标签: python json api tinydb


【解决方案1】:

我最近遇到了这个问题 我的问题的原因是我使用的是多线程 线程同时与数据库交互会导致文件损坏 我试图通过使用 thread.lock 来防止这个问题

【讨论】:

    猜你喜欢
    • 2023-03-25
    • 2020-11-11
    • 2017-05-09
    • 2019-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多