Преобразование Tokenize2 JSON функции поиска из PHP в Python - PullRequest
0 голосов
/ 25 марта 2020

Эй, я пытаюсь преобразовать код функции поиска, написанный на PHP, из плагина Jquery под названием Tokenizer2 в Python. Это 2 ссылки на плагин:
https://dragonofmercy.github.io/Tokenize2/config.html
https://www.jqueryscript.net/form/Dynamic-Autocomplete-Tag-Input-Plugin-For-jQuery-Tokenize2.html (есть код PHP от)

У меня есть Локально протестировал все с PHP, и он работает нормально.

Мне нужен этот плагин для помещения Userinput в токены (очевидно), и поскольку я использую бэкэнд Django, я пытаюсь преобразовать следующее PHP -Код (который используется для поиска JSON для ввода пользователя) в python, но у меня возникают некоторые проблемы с этим.

Итак, это PHP -Код:

<?php
header('content-type: text/json');

$search = preg_quote(isset($_REQUEST['search']) ? $_REQUEST['search'] : ''); 
$start = (isset($_REQUEST['start']) ? $_REQUEST['start'] : 1;
$obj = json_decode(file_get_contents('tagginglist.json'), true);
$ret = array();

foreach($obj as $item)
{
    if(preg_match('/' . ($start ? '^' : '') . $search . '/i', $item['text']))
    {
        $ret[] = array('value' => $item['text'], 'text' => $item['text']);
    }
}

echo json_encode($ret);

И это моя попытка преобразовать это в python:

import re
import request
import json

r = request.head('tagginglist.py')
search = re.escape(request['search'])
start = request['start']

x = request.get('tagginglist.py')

obj = x.json()
ret = {}


for item in obj:
    if re.match (re.compile('/' + (start '^' : '')) + search + '\i', item['text']))
        ret = {'value' : item['text'], 'text' = item['text']}

y = json.dumps(ret)
print(y)

Мой IDE сообщает мне, что что-то не так в этой строке:

if re.match (re.compile('/' + (start '^' : '')) + search + '\i', item['text']))

, и если я использую форму на своем веб-сайте, я получаю сообщение об ошибке консоли:

Uncaught SyntaxError: Unexpected token i in JSON at position 0
    at JSON.parse (<anonymous>)
    at Tokenize2.<anonymous> (tokenize2.js:630)
    at Object.e [as success] (jquery.min.js:2)
    at j (jquery.min.js:2)
    at Object.fireWith [as resolveWith] (jquery.min.js:2)
    at x (jquery.min.js:4)
    at XMLHttpRequest.b (jquery.min.js:4)
(anonymous) @   tokenize2.js:630
e   @   jquery.min.js:2
j   @   jquery.min.js:2
fireWith    @   jquery.min.js:2
x   @   jquery.min.js:4
b   @   jquery.min.js:4
XMLHttpRequest.send (async)     
send    @   jquery.min.js:4
ajax    @   jquery.min.js:4
(anonymous) @   tokenize2.js:624
e   @   jquery.min.js:2
(anonymous) @   tokenize2.js:677
e   @   jquery.min.js:2
setTimeout (async)      
Tokenize2.debounce  @   tokenize2.js:685
Tokenize2.dataSourceRemote  @   tokenize2.js:620
Tokenize2.find  @   tokenize2.js:608
(anonymous) @   tokenize2.js:112
e   @   jquery.min.js:2
dispatch    @   jquery.min.js:3
r.handle    @   jquery.min.js:3
trigger @   jquery.min.js:3
(anonymous) @   jquery.min.js:3
each    @   jquery.min.js:2
each    @   jquery.min.js:2
trigger @   jquery.min.js:3
Tokenize2.trigger   @   tokenize2.js:98
Tokenize2.keyup @   tokenize2.js:528
(anonymous) @   tokenize2.js:123
e   @   jquery.min.js:2
dispatch    @   jquery.min.js:3
r.handle    @   jquery.min.js:3
trigger @   jquery.min.js:3
(anonymous) @   jquery.min.js:3
each    @   jquery.min.js:2
each    @   jquery.min.js:2
trigger @   jquery.min.js:3
Tokenize2.trigger   @   tokenize2.js:98
(anonymous) @   tokenize2.js:147
e   @   jquery.min.js:2
dispatch    @   jquery.min.js:3
r.handle    @   jquery.min.js:3

Я действительно не эксперт по PHP или Python, поэтому любая помощь очень ценится!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...