Эй, я пытаюсь преобразовать код функции поиска, написанный на 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, поэтому любая помощь очень ценится!