Поскольку файл-файл читает файл, он использует указатель, чтобы отслеживать, где он находится. Если вы прочитаете часть файла, а затем вернитесь к нему позже, он поднимется туда, где вы остановились. Если вы прочитаете весь файл и вернетесь к тому же файловому объекту, это будет похоже на чтение пустого файла, потому что указатель находится в конце файла, и читать его нечего. Вы можете использовать file.tell()
, чтобы увидеть, где в файле указатель, и file.seek
установить указатель. Например:
>>> file = open('myfile.txt')
>>> file.tell()
0
>>> file.readline()
'one\n'
>>> file.tell()
4L
>>> file.readline()
'2\n'
>>> file.tell()
6L
>>> file.seek(4)
>>> file.readline()
'2\n'
Кроме того, вы должны знать, что file.readlines()
читает весь файл и сохраняет его как список. Это полезно знать, потому что вы можете заменить:
for line in file.readlines():
#do stuff
file.seek(0)
for line in file.readlines():
#do more stuff
на:
lines = file.readlines()
for each_line in lines:
#do stuff
for each_line in lines:
#do more stuff
Вы также можете перебирать файл по одной строке за раз, не сохраняя весь файл в памяти (это может быть очень полезно для очень больших файлов):
for line in file:
#do stuff
Для текста JSON:
application/json
тип среды MIME для текста JSON
application/json
. Кодировка по умолчанию является UTF-8. (Источник: RFC 4627 ).
Для JSONP (выполнимый JavaScript) с обратным вызовом:
application/javascript
Вот некоторые сообщения в блоге, которые были упомянуты в комментариях, которые релевантны.
При вызове веб-сервисов ASP.NET от клиентского, необходимо использовать application/json
, чтобы это работало. Я полагаю, что это - то же для jQuery и Расширение платформы.
Конечно, правильный тип мультимедиа MIME для JSON - application / json
, но необходимо понимать, какой тип данных ожидается в вашем приложении.
Например, я использую Ext GWT , и ответ сервера должен иметь вид text / html но содержит данные JSON.
Клиентская сторона, прослушиватель формы Ext GWT
uploadForm.getForm().addListener(new FormListenerAdapter()
{
@Override
public void onActionFailed(Form form, int httpStatus, String responseText)
{
MessageBox.alert("Error");
}
@Override
public void onActionComplete(Form form, int httpStatus, String responseText)
{
MessageBox.alert("Success");
}
});
В случае использования типа ответа application / json браузер предлагает мне сохранить файл.
Исходный код на стороне сервера фрагмент с использованием Spring MVC
return new AbstractUrlBasedView()
{
@SuppressWarnings("unchecked")
@Override
protected void renderMergedOutputModel(Map model, HttpServletRequest request,
HttpServletResponse response) throws Exception
{
response.setContentType("text/html");
response.getWriter().write(json);
}
};
IANA зарегистрировала официальный тип MIME для JSON как application / json
.
На вопрос, почему не text / json
, Крокфорд, похоже, ответил, что JSON на самом деле не является ни JavaScript, ни текстом, а также IANA с большей вероятностью раздаст application / *
, чем текст / *
.
Дополнительные ресурсы:
VALUES
для SQL Server 2005 (это поддерживается с 2008), – Damien_The_Unbeliever 15 June 2011 в 19:09