сначала отключить элемент, используя метод prop()
jQuery, т. е.
$("selector").prop("disabled",true);
, и если вы хотите включить, щелкните просто сделайте это, используя
$("selector").prop("disabled",false);
U-префикс означает, что у вас есть строка Unicode. Когда вы действительно используете строку, она не будет отображаться в ваших данных. Не нажимайте напечатанный вывод.
Например, попробуйте следующее:
print mail_accounts[0]["i"]
Вы не увидите u.
Префикс u
означает, что эти строки являются unicode, а не 8-битными. Лучший способ не показывать префикс u
- это переключиться на Python 3, где строки по умолчанию имеют unicode. Если это не вариант, конструктор str
преобразует из unicode в 8-битный, поэтому просто рекурсивно перебирает результат и преобразует unicode
в str
. Однако, вероятно, лучше всего оставить строки как unicode.
Все круто, мужик. «U» - это хорошо, это указывает на то, что строка имеет тип Unicode в python 2.x.
http://docs.python.org/2/howto/unicode.html#the-unicode-type
Я продолжал сталкиваться с этой проблемой при попытке захвата данных JSON в журнале с помощью библиотеки Python logging
для целей отладки и устранения неполадок. Получение символа u
является реальной неприятностью, когда вы хотите скопировать текст и вставить его в свой код где-нибудь.
Как вам все скажут, это потому, что это представление Юникода, и оно может исходят из того факта, что вы использовали json.loads()
для загрузки данных из строки в первую очередь.
Если вам нужно представление JSON в журнале, без префикса u
, трюк должен использовать json.dumps()
перед его записью. Например:
import json
import logging
# Prepare the data
json_data = json.loads('{"key": "value"}')
# Log normally and get the Unicode indicator
logging.warning('data: {}'.format(json_data))
>>> WARNING:root:data: {u'key': u'value'}
# Dump to a string before logging and get clean output!
logging.warning('data: {}'.format(json.dumps(json_data)))
>>> WARNING:root:data: {'key': 'value'}
Юникод является подходящим типом здесь. В документах JSONDecoder описывается таблица преобразования и указано, что строковые объекты json декодируются в объекты Unicode
https://docs.python.org/2/library/json.html#encoders-and- декодеры
JSON Python
==================================
object dict
array list
string unicode
number (int) int, long
number (real) float
true True
false False
null None
"определяет кодировку, используемую для интерпретации любых объектов str, декодированных этим экземпляром (по умолчанию UTF-8)."
Я считаю, что печать d3
ниже - та, которую вы искали (которая представляет собой комбинацию дампов и нагрузок):)
Имея:
import json
d = """{"Aa": 1, "BB": "blabla", "cc": "False"}"""
d1 = json.loads(d) # Produces a dictionary out of the given string
d2 = json.dumps(d) # Produces a string out of a given dict or string
d3 = json.dumps(json.loads(d)) # 'dumps' gets the dict from 'loads' this time
print "d1: " + str(d1)
print "d2: " + d2
print "d3: " + d3
Печать:
d1: {u'Aa': 1, u'cc': u'False', u'BB': u'blabla'}
d2: "{\"Aa\": 1, \"BB\": \"blabla\", \"cc\": \"False\"}"
d3: {"Aa": 1, "cc": "False", "BB": "blabla"}
json.dumps
преобразует dict обратно в строку (JSON-encoded). Это не то, что хотел сделать ОП. -1.
– Mark Amery
16 January 2016 в 14:36
Эти символы «u», добавленные к объекту, означают, что объект закодирован в «unicode».
Если вы хотите удалить эти «u» символы из своего объекта, вы можете сделать это:
import json, ast
jdata = ast.literal_eval(json.dumps(jdata)) # Removing uni-code chars
Давайте проверим из оболочки python
>>> import json, ast
>>> jdata = [{u'i': u'imap.gmail.com', u'p': u'aaaa'}, {u'i': u'333imap.com', u'p': u'bbbb'}]
>>> jdata = ast.literal_eval(json.dumps(jdata))
>>> jdata
[{'i': 'imap.gmail.com', 'p': 'aaaa'}, {'i': '333imap.com', 'p': 'bbbb'}]
u
s в ваших данных. Честно говоря, распечататьu
, чтобы указать, что это строка Юникода, является одной из худших ошибок в Python. Совершенно смешно. Почему бы не напечататьa
перед каждой строкой, если это ASCII?i
, если это целое число? – Snowcrash 5 August 2018 в 11:17