gpt4 book ai didi

python - 将大型 JSON 文件一次拆分为 100 个批处理,以便通过 API 运行

转载 作者:行者123 更新时间:2023-11-30 22:49:41 24 4
gpt4 key购买 nike

我已经快要完成我正在开发的这个工具了,但作为一名初级开发人员,没有高级程序员可以合作,我陷入了困境。我有一个 python 脚本,它从数据库中获取数据,将其转换为 JSON,以便通过地址验证 API 运行,我已经全部正常工作,但事实是该 API 一次只接受 100 个对象。我基本上需要将包含 X 个对象的文件分成 100 个批处理来运行,然后存储到同一个输出文件中。这是我的脚本结构的片段:

for row in rows:

d = collections.OrderedDict()
d['input_id'] = str(row.INPUT_ID)
d['addressee'] = row.NAME
d['street'] = row.ADDRESS
d['city'] = row.CITY
d['state'] = row.STATE
d['zipcode'] = row.ZIP
d['candidates'] = row.CANDIDATES
obs_list.append(d)

json.dump(obs_list, file)

ids_file = '.csv'

cur.execute(input_ids)

columns = [i[0] for i in cur.description]

ids_input = cur.fetchall()

#ids_csv = csv.writer(with open('.csv','w',newline=''))

with open('.csv','w',newline='') as f:

ids_csv = csv.writer(f,delimiter=',')

ids_csv.writerow(columns)

ids_csv.writerows(ids_input)

print('Run through API')

url = 'https://api.'

headers = {'content-type': 'application/json'}

这是我认为我需要循环来分解它的地方

with open('.json', 'r') as run:

dict_run = run.readlines()

dict_ready = (''.join(dict_run))

#lost :(
for object in dict_ready:

# do something with object to only run 100 at a time

r = requests.post(url, data=dict_ready, headers=headers)

ss_output = r.text

output = 'C:\\Users\\TurnerC1\\Desktop\\ss_output.json'

with open(output,'w') as of:

of.write(ss_output)

目前,我在一个文件中有大约 4,000 个这样的文件,可以通过一次只接受 100 个的 API 运行。我确信有一个简单的答案,我自己做这件事已经筋疲力尽了,哈哈。任何帮助是极大的赞赏。

示例 json:

[
{
"street":"1 Santa Claus",
"city":"North Pole",
"state":"AK",
"candidates":10
},
{
"addressee":"Apple Inc",
"street":"1 infinite loop",
"city":"cupertino",
"state":"CA",
"zipcode":"95014",
"candidates":10
}
]'

最佳答案

正如我所读,您有一系列对象,并且希望将其分解为子集,每个子​​集不超过 100 个项目。

假设 dict_ready 是一个对象列表(如果不是,请修改您的代码以使其如此):

count = 100
subsets = (dict_ready[x:x + count] for x in range(0, len(dict_ready), count))
for subset in subsets:
r = requests.post(url, data=subset, headers=headers)

关于python - 将大型 JSON 文件一次拆分为 100 个批处理,以便通过 API 运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39665699/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com