Строковое форматирование в версии Python ранее, чем 2,6

Нашел ответ с помощью комментариев. Во-первых, я создал JSONArrays из arrayLists. Затем я разместил их в php через Android Volley.

частные параметры карты;

    JSONArray bookNamesJSON = new JSONArray(Arrays.asList(bookNames));
    JSONArray bookAuthorsJSON = new JSONArray(Arrays.asList(bookAuthors));
    JSONArray subjectsJSON = new JSONArray(Arrays.asList(subjects));


    params = new HashMap<>();
    params.put("candidateId", id + "");
    params.put("bookName",bookNamesJSON.toString());
    params.put("authorName",bookAuthorsJSON.toString());
    params.put("subjectName",subjectsJSON.toString());
    params.put("reqDate",date);

Тогда в php мне пришлось сделать это:

$candidateId=

Нашел ответ с помощью комментариев. Во-первых, я создал JSONArrays из arrayLists. Затем я разместил их в php через Android Volley.

частные параметры карты;

[110]

Тогда в php мне пришлось сделать это:

[111]

Надеюсь, это кому-нибудь поможет.

POST["candidateId"]; $reqDate=

Нашел ответ с помощью комментариев. Во-первых, я создал JSONArrays из arrayLists. Затем я разместил их в php через Android Volley.

частные параметры карты;

[110]

Тогда в php мне пришлось сделать это:

[111]

Надеюсь, это кому-нибудь поможет.

POST["reqDate"]; $subjectName = json_decode(

Нашел ответ с помощью комментариев. Во-первых, я создал JSONArrays из arrayLists. Затем я разместил их в php через Android Volley.

частные параметры карты;

[110]

Тогда в php мне пришлось сделать это:

[111]

Надеюсь, это кому-нибудь поможет.

POST["subjectName"])[0]; $bookName = json_decode(

Нашел ответ с помощью комментариев. Во-первых, я создал JSONArrays из arrayLists. Затем я разместил их в php через Android Volley.

частные параметры карты;

[110]

Тогда в php мне пришлось сделать это:

[111]

Надеюсь, это кому-нибудь поможет.

POST["bookName"])[0]; $authorName = json_decode(

Нашел ответ с помощью комментариев. Во-первых, я создал JSONArrays из arrayLists. Затем я разместил их в php через Android Volley.

частные параметры карты;

[110]

Тогда в php мне пришлось сделать это:

[111]

Надеюсь, это кому-нибудь поможет.

POST["authorName"])[0]; $response = array(); foreach ($subjectName as $i => $subject) { $stmt = $conn->prepare("INSERT INTO BookRequisition VALUES (?,?,?,?,?);"); $stmt->bind_param("dssss", $candidateId, $subject, $bookName[$i], $authorName[$i], $reqDate); $stmt->execute(); } $response["success"] = true; echo json_encode($response);

Надеюсь, это кому-нибудь поможет.

34
задан bignose 1 May 2013 в 04:56
поделиться

5 ответов

Метод str.format был введен в Python 3.0 и перенесен на Python 2.6 и более поздние версии.

47
ответ дан 27 November 2019 в 16:06
поделиться

Я считаю, что это особенность Python 3.0, хотя она есть в версии 2.6. Но если у вас версия Python ниже этой, форматирование строк такого типа не будет работать.

Если вы пытаетесь печатать отформатированные строки в целом, используйте синтаксис Python в стиле printf через оператор % , Например:

print '%.2f' % some_var
8
ответ дан 27 November 2019 в 16:06
поделиться

Какую версию Python вы используете?

Редактировать Для Python 2.5 используйте «x =% s»% (x) (для печати строк)

Если вы хотите напечатать другие типы, см. Здесь .

7
ответ дан 27 November 2019 в 16:06
поделиться

Ваш пример кода написан для Python 2.6 или новее, где был введен метод str.format .

Для версий Python ниже 2.6 используйте оператор% для интерполяции последовательности значений в строку формата:

for x in range(1, 11):
    print '%2d %3d %4d' % (x, x*x, x*x*x)

Вы также должны знать, что этот оператор может интерполировать по имени из сопоставления, вместо просто позиционных аргументов:

>>> "%(foo)s %(bar)d" % {'bar': 42, 'foo': "spam", 'baz': None}
'spam 42'

В сочетании с тем фактом, что встроенная функция vars () возвращает атрибуты пространства имен в виде отображения, это может быть очень удобно:

>>> bar = 42
>>> foo = "spam"
>>> baz = None
>>> "%(foo)s %(bar)d" % vars()
'spam 42'
36
ответ дан 27 November 2019 в 16:06
поделиться

Извините, но ваш инстинкт кишечника правильный. Единица измерения - КОРПУС ПАКЕТА.

Не уверен, почему ты считаешь это уродливым. конечно, это просто вопрос вызова сценария для пакета?

-121--3995708-

Нет, корпус упаковки должен быть заменен в целом. Вместо того, чтобы включать код для нескольких пакетов в один сценарий, я бы создал файл для спецификации пакета и файл для тела пакета. Затем можно написать «мета-скрипт» для запуска необходимых изменений пакета в SQL Plus:

@@package1.spc
@@package1.bdy
@@package2.bdy
-121--3995709-

Хотя существующие ответы описывают причины и указывают на направление исправления, ни один из них фактически не предоставляет решения, которое выполняет то, что задает вопрос.

У вас есть два варианта решения проблемы. Во-первых, необходимо обновить до версии Python 2.6 или выше, которая поддерживает строковую конструкцию формата .

Второй параметр - использовать более старое форматирование последовательности с помощью оператора% . Эквивалентный код того, что вы представили, будет следующим.

for x in range(1,11):
  print '%2d %3d %4d' % (x, x*x, x*x*x)

Этот код создает точно такие же выходные данные в Python 2,5, как и в Python 2,6 и выше.

7
ответ дан 27 November 2019 в 16:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: