json - 如何将原始 json 从 url 转换为 json 或 csv?
问题描述
我有一个 URL,它为我提供了基于 json 的原始数据,我在将原始文本导入为 json 文件,甚至将其转换为 csv 时遇到了一些问题。
我尝试使用 urllib3 和 BeautifulSoup 导入该数据,并将其存储为汤对象。我不能做的是将该数据存储为 json 和 csv (我需要两者)。
我认为导致此问题的问题之一是页面顶部存在一行描述返回的结果,但在技术上不是 json 数据的一部分:
可能导致问题的顶部代码:
{
"response":{"numFound":1161,"start":0,"docs":[
{
"applicationType":"UTILITY",
"documentId":"US10010749B2",
"applicationNumber":"US14422067",
我正在使用的库:
import urllib3
from bs4 import BeautifulSoup
import json
一些代码:
url = "https://developer.uspto.gov/ibd-api/v1/patent/application?assignee=alexander&start=0&rows=5"
http = urllib3.PoolManager()
response = http.request('GET', url)
soup = BeautifulSoup(response.data, "html.parser")
print(soup)
json_data = json.load(url)
print(json_data)
AttributeError: 'str' object has no attribute 'read'
我的最终目标是能够“组织和下载”来自 url 的所有数据,并将它们存储为 json 和 csv 格式。
解决方案
首先,您的代码大部分是正确的:
import urllib3
from bs4 import BeautifulSoup
import json
import pandas as pd
url = "https://developer.uspto.gov/ibd-api/v1/patent/application?assignee=alexander&start=0&rows=5"
http = urllib3.PoolManager()
response = http.request('GET', url)
soup = BeautifulSoup(response.data, "html.parser")
json_data = json.loads(soup.text)
print(json_data)
拥有正确的 json 数据,您可以将其导入 panda 数据框,然后将其导出为 csv:
df = pd.DataFrame(json_data['response']['docs'])
df.to_csv('my_csv.csv', index=False)
编辑
添加了用于导出到 csv 的代码
推荐阅读
- javascript - JS:为什么在继承另一个原型后需要重新设置构造函数?
- c# - 在取消和处理 CancellationTokenSource 之间存在延迟是否可以保证 IsCancellationRequested 将设置为 true?
- javascript - 找不到模块 axios - 与打字稿的兼容性问题
- javascript - Discord js在嵌入中使用消息ID
- c++ - 字符串未定向到输出文件(C++)
- python-3.x - 为什么使用 "+=" 附加到 List[str] 会导致意外的换行符,而 "c = c + a" 会导致 c 为空?
- java - 使用java中的方法交换单链表中的两个节点
- python - 如何对文件中的int进行排序
- sql - 如何在 BigQuery 中查找相对于日期随时间变化的 SQL 计数差异
- sql - 将使用“分区依据”的计数转换为 SQL Server 中带小数位的百分比?