Простите, если я ошибаюсь, но я думаю, что вы перепутали с преобразованием типа строки аргумента и декодированием строки json.
Одинарные кавычки в вашем результате означают, что все значение является строкой.
Во-первых, аргумент, который вы передаете в командной строке, недопустим в формате JSON.
Попробуйте запустить вашу программу так:
C:\Python26\python.exe saver.py "{\"apple\":\"newf\",\"mango\":\"newb\"}"
Затем позже расшифруйте JSON, содержащийся в строке, следующим образом:
json_data["cookbooks"][0]["attributes"] = json.loads(data_str)
т.е. json.loads, а не str.decode
на данный момент переменная "json_data" не содержит JSON, она содержит словарь
Затем вам нужно будет закодировать весь json_data, чтобы передать его в какой-то необработанной форме http GET, если только у вас нет какого-то API, делающего это для вас. Что-то вроде
encoded_json_data = json.dumps(json_data)