2013-08-06 4 views
1

Рубин на Rails JSON способен разобрать свертывание вызовов в следующем формате:Пайтон JSON формат (с колбой) Формат

name=test. Он будет интерпретировать это как {"name": "test"}.

Python's JSON, похоже, воспринимает это как ошибку JSON (что очевидно). Есть ли способ, однако, взять полезную нагрузку для разбора в формате name=test? Я использую Python's JSON с Flask здесь.

+0

Эта [функция ] (http://docs.python.org/3/library/urllib.parse.html#urllib.parse.parse_qs) для синтаксического анализа строк запроса может быть полезно? – jadkik94

ответ

1

Попробуйте

fields = curl_str.split('=') 
curl_json = { fields[0]:fields[1] } 
+0

Что делать, если в моем запросе содержится: 'curl .... -d name = test -d age = 12 -d location = somecity'? Это не будет анализировать все данные, не так ли? – darksky

2

Если вы используете флягу, почему бы не использовать jsonify

from flask import jsonify 

@app.route('/do') 
def do_whatever(): 
    return jsonify(name=test) 

Это отправить ответ JSON, как это в браузере:

{ 
    "name": "test", 
} 
+0

Это полезно, спасибо, но я хочу сначала изменить атрибуты, а затем вернуть их в формате JSON. Кажется, это возвращает объект ответа. 'name = test' передается как полезная нагрузка/данные через curl. Как я могу проанализировать эти данные как «имя»: «test» или json/dict? – darksky

+0

Вы можете показать пример cURL? – codegeek

+0

Вот пример вызова curl: 'curl -X POST http: // localhost: 5000 -d name = somename -d age = 15'. Раньше я делал это в Rails, но не уверен, как в Flask. – darksky