TypeError:字节索引必须是整数或片,而不是str HTTP500 respons

2024-04-23 18:00:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图张贴到我的数据库,我收到了HTTP500响应代码。 我真的很难解决这个问题。你知道吗

数据库处理程序:

  #POST adds a group to the database
def add_group_handler(json):
    try:
        cnx = mysql.connector.connect(**database.read_config())
        cursor = cnx.cursor()

        sql_query = "INSERT INTO leagueGroups (groupId, groupLetter, numberOfTeams, totalMatchesPlayed, topGoalscorer, topAssists, mostCards, totalPoints)" \
                    "VALUES (%s, %s, %s, %s, %s, %s, %s, %s)"

        print(json)
        cursor.execute(sql_query,( json['groupId'],
                                   json['groupLetter'],
                                   json['numberOfTeams'],
                                   json['totalMatchesPlayed'],
                                   json['topGoalscorer'],
                                   json['topAssists'],
                                   json['mostCards'],
                                   json['totalPoints']))

        cnx.commit()
        new_group_id = json['groupId']
        sql = 'SELECT * FROM leagueGroups WHERE groupId='+ str(new_group_id)
        cursor.execute(sql)
        row = cursor.fetchone()
        columns = cursor.column_names
        group = {}
        for (key, value) in zip(columns, row):
            group[key] = value
        cnx.close()
        return group
    except mysql.connector.Error as err:
        print('Something went wrong adding a group: {}'.format(err))

你知道吗Api.py公司文件:

    # Adds a group to DB
# @return: string
@app.route(uri_for_groups, methods=['POST'])
def add_group():
    if not request.json:
        abort(400)
    data = request.data
    print(data)
    handler.add_group_handler(data)
    return 'Successfully added group!', 200

我正在发送这个json,它是数据库数据的一个示例,经过更改,所以数据应该是正确的:

 {"groupId":60,"groupLetter":"E","mostCards":"Marcos Rojo","numberOfTeams":4,"topAssists":"Kevin De Bruyne","topGoalscorer":"Cristiano Ronaldo","totalMatchesPlayed":6,"totalPoints":48}

错误日志:

File "C:\Users\Aaron Rogers\Documents\AR_ChampLeague_Project\server\database_handler.py", line 386, in add_group_handler
        cursor.execute(sql_query,( json['groupId'],
    TypeError: byte indices must be integers or slices, not str
    127.0.0.1 - - [14/Dec/2018 16:42:22] "POST /api/v1/groups HTTP/1.1" 500 -

有人知道我的问题是什么吗?我会很高兴的


Tags: add数据库jsonsqldatagroupquerypost