我正在通過 API 呼叫資料,并希望將該資料寫入我的 Django 模型。API 為我提供了具有以下結構的 JSON:
"results": [
{
"key1": "value",
"key2": "value"
},
{
"key1": "value",
"key2": "value",
},
{
"key1": "value",
"key2": "value",
},
....
我的代碼如下所示:
def get_data():
try:
response = requests.get(settings.HOST settings.PATH, verify=False)
for data in response['results']:
print(data)
mydata = MyModel.add(**data)
return results
我收到此錯誤:
Connected to pydev debugger (build 212.5284.44)
{'key1': 'value', 'key2': 'value'}
list indices must be integers or slices, not str
Process finished with exit code 0
Traceback (most recent call last):
File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 846, in exec_module
File "<frozen importlib._bootstrap_external>", line 983, in get_code
File "<frozen importlib._bootstrap_external>", line 913, in source_to_code
File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
File "/Users/user01/Repository/api-test/myapi/myapp/management/commands/getapidata.py", line 27
get_data()
IndentationError: unexpected unindent
python-BaseException
我做錯了什么?
PyCharm 中的變數截圖

uj5u.com熱心網友回復:
您的問題是您沒有從回應中獲取 json。
就像@Jisson 說的。
你需要打電話 .json()
def get_data():
try:
response = requests.get(settings.HOST settings.PATH, verify=False)
json_response = response.json() # new
for data in json_response['results']: # modified
print(data)
mydata = MyModel.add(**data)
return results
uj5u.com熱心網友回復:
我的代碼大部分都有效。json 中的另一個 dict 導致了這個問題。在處理 JSON 的模型中,我沒有添加另一個回圈,這就是問題所在。我在這部分發表評論,一切正常。
謝謝大家的時間!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/407311.html
標籤:
