繁体   English   中英

Python 获取 API 响应并添加到 JSON 密钥错误

[英]Python Taking API response and adding to JSON Key error

提示:本站为国内最大中英文翻译问答网站,提供中英文对照查看,鼠标放在中文字句上可显示英文原文

我有一个脚本,它从 JSON 文件中获取一个 ID,将其添加到 URL 中以用于 API 请求。 目的是让一个循环遍历 1000 个 id 并推断出一个 JSON 文件,其中包含所有信息。

当前代码调用第一个请求并创建并填充 JSON 文件,但在循环中运行时会抛出一个键错误。

import json
import requests

fname = "NewdataTest.json"

def write_json(data, fname):
    fname = "NewdataTest.json"
    with open(fname, "w") as f:
        json.dump(data, f, indent = 4)
    with open (fname) as json_file:
        data = json.load(json_file)
        temp = data[0]
            #print(newData) 
        y = newData
        data.append(y)

# Read test.json to get tmdb IDs 
tmdb_ids = []
with open('test.json', 'r') as json_fp:
    imdb_info = json.load(json_fp)

tmdb_ids = [movie_info['tmdb_id'] for movies_chunk in imdb_info for movie_index, movie_info in movies_chunk.items()]
# Add IDs to API call URL
for tmdb_id in tmdb_ids:
    print("https://api.themoviedb.org/3/movie/" + str(tmdb_id) + "?api_key=****")
    # Send API Call
    response_API = requests.get("https://api.themoviedb.org/3/movie/" + str(tmdb_id) + "?api_key=****")
    # Check API Call Status
    print(response_API.status_code)
    write_json((response_API.json()), "NewdataTest.json")   
            

错误是在这一行“temp = data[0]”我试过打印数据键,没有。 在这一点上,我不知道我在哪里,因为我已经破解了它,它几乎不像一段有凝聚力的代码。 我的目标是制作一个简单的 function 从 JSON 获取数据,一个生成 API 调用 URL,一个将结果写入新的 JSON。

API 响应 JSON 的示例:

{
    "adult": false,
    "backdrop_path": "/e1cC9muSRtAHVtF5GJtKAfATYIT.jpg",
    "belongs_to_collection": null,
    "budget": 0,
    "genres": [
        {
            "id": 10749,
            "name": "Romance"
        },
        {
            "id": 35,
            "name": "Comedy"
        }
    ],
    "homepage": "",
    "id": 1063242,
    "imdb_id": "tt24640474",
    "original_language": "fr",
    "original_title": "Disconnect: The Wedding Planner",
    "overview": "After falling victim to a scam, a desperate man races the clock as he attempts to plan a luxurious destination wedding for an important investor.",
    "popularity": 34.201,
    "poster_path": "/tGmCxGkVMOqig2TrbXAsE9dOVvX.jpg",
    "production_companies": [],
    "production_countries": [
        {
            "iso_3166_1": "KE",
            "name": "Kenya"
        },
        {
            "iso_3166_1": "NG",
            "name": "Nigeria"
        }
    ],
    "release_date": "2023-01-13",
    "revenue": 0,
    "runtime": 107,
    "spoken_languages": [
        {
            "english_name": "English",
            "iso_639_1": "en",
            "name": "English"
        },
        {
            "english_name": "Afrikaans",
            "iso_639_1": "af",
            "name": "Afrikaans"
        }
    ],
    "status": "Released",
    "tagline": "",
    "title": "Disconnect: The Wedding Planner",
    "video": false,
    "vote_average": 5.8,
    "vote_count": 3
}

您可以将 API 调用的所有结果存储到一个列表中,然后将此列表以 Json 格式保存到一个文件中。 例如:

#...

all_data = []

for tmdb_id in tmdb_ids:
    print("https://api.themoviedb.org/3/movie/" + str(tmdb_id) + "?api_key=****")
    # Send API Call
    response_API = requests.get("https://api.themoviedb.org/3/movie/" + str(tmdb_id) + "?api_key=****")

    # Check API Call Status
    print(response_API.status_code)

    if response_API.status_code == 200:
        # store the Json data in a list:
        all_data.append(response_API.json())

# write the list to file
with open('output.json', 'w') as f_out:
    json.dump(all_data, f_out, indent=4)

这将生成output.json ,所有响应均采用 Json 格式。

问题未解决?试试本站强大的搜索功能,搜索: Python 获取 API 响应并添加到 JSON 密钥错误
python mailchimp api 2.0 json响应错误

[英]python mailchimp api 2.0 json response error

嗨,我正在尝试建立一个批处理作业,以从mysql数据库中获取数据,并将这些用户发送到mailchimp,以用于直接电子邮件活动。 我的代码在python 2.6 Red Hat linux(Red Hat 4.4.7-4)和python 2.7.3 Debian 4.6.3-14上运行时遇到问 ...

Python Twitter API JSON响应错误

[英]Python twitter API JSON response error

我正在尝试使用python-twitter libary连接到twitter api。 这是我的代码: 我需要解析此json响应。 但是,当我使用json库时,出现错误的预期字符串或缓冲区 有人可以告诉我我在做什么错吗? ...

获取 API 响应并将其添加到 json,AttributeError: 'dict' object has no attribute 'append'

[英]Taking API response and adding it to json, AttributeError: 'dict' object has no attribute 'append'

我正在发出 API 请求,并希望将响应添加到 JSON。然后将后续请求响应添加到同一个 JSON 文件。 我已经分离出不起作用的代码块,仅添加一个 API 调用并处理该请求。 问题是我无法使用此信息编写 JSON 文件。 尝试时出现错误“AttributeError: 'dict' object ...

需要 URL 作为 python API JSON 响应中的键值

[英]need the URL as key values in the python API JSON response

我有一个简单的 python 脚本,我在谷歌中找到了我想要的是如何在响应中获得 URL 下面是响应,但是我需要响应中的 URL 作为键值 {'message': 'success', 'people': [{'name': 'Kjell Lindgren', 'craft': 'ISS'}, {'n ...

2022-10-04 12:15:40 1 38   python
python api 响应 json object

[英]python api response to json object

我正在尝试编写一个脚本来使用 jq 解析 api 响应。 我可以使用 bash 和 cli 让它工作,但我想在 python 中编写脚本,所以我可以在其中加入更多逻辑。 我遇到的问题是我可以获得 api 响应,但是当我尝试使用 json.loads() 或 json.dump() 加载它时,我不断 ...

Python键错误JSON

[英]Python key error JSON

我正在尝试使用Datumbox API进行Twitter情感分析,并一直遇到问题。 我调用API的函数如下所示: 大多数情况下,此功能有效。 但是,当我尝试运行该函数几百次之后,我一直收到KeyError:'result'作为错误。 以下是API的文档: JSON“结果”值 ...

Python JSON键错误

[英]Python json key error

因此,我使用以下简单的代码段导入JSON对象,然后将特定字段拉出到列表中。 这里是: 该URL是对iNaturalist node.js服务的调用。 拨打电话时,我得到以下结果: 所以很奇怪-我知道响应有304个结果,但是代码似乎先打印出一些,然后炸毁。 为什么是这样?! ...

如何在运行时使用python验证两个JSON API Response键值对匹配?

[英]How to Validate two JSON API Response key-value pair matches on runtime using python?

我正在尝试验证两个API JSON响应键-值对是否具有相同的键值,如果JSON响应不匹配,则会引发错误。 例如:1. www.oldurl.com提供=> 在这里,oldurl和newurl给出了相同的JSON响应,但是在newurl中,我们看到了键和值中的错误。 现在 ...

从 Python 中的 JSON 响应中获取键的值

[英]Get a value of key from JSON response in Python

我正在通过获取请求访问 API 并从中获得响应。 这是我的代码: print(r)返回: 但是当我尝试访问密钥“min”时,出现密钥错误: 这是超级简单的。 我究竟做错了什么? ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2023 STACKOOM.COM