使用 Pandas 将 JSON 转换为 CSV 时以非系列错误混合字典,但只有在从 URL 检索 JSON 时才会出现
Python 3.8.5 与 Pandas 1.1.3
使用 Pandas 将 Python JSON 字典列表转换为 CSV 的代码无任何问题:
import csv
import pandas as pd
import json
data = [{"results": [{"type": "ID", "value": "1234", "normalized": "1234", "count": 1, "offsets": [{"start": 14, "end": 25}], "id_b": "10"}, {"type": "ID", "value": "5678", "normalized": "5678", "count": 1, "offsets": [{"start": 32, "end": 43}], "id_b": "11"}], "responseHeaders": {"Date": "Tue, 25 May 2021 14:41:28 GMT", "Content-Type": "application/json", "Content-Length": "350", "Connection": "keep-alive", "Server": "openresty", "X-StuffAPI-ProcessedLanguage": "eng", "X-StuffAPI-Request-Id": "abcdef", "Strict-Transport-Security": "max-age=63072000; includeSubDomains; preload", "X-StuffAPI-App-Id": "123456789", "X-StuffAPI-Concurrency": "1"}}]
pd.read_json(json.dumps(data)).to_csv('file.csv')
上述代码中的 data 变量中的值直接从我们的一个服务的 API 调用响应中粘贴过来。当我尝试在一个脚本中执行包括 API 调用在内的所有操作时,问题就出现了。首先让我们看一下脚本中似乎没有问题的所有内容:
import csv
import pandas as pd
import json
import stuff.api
def run(key, url):
# 创建一个 API 实例
api = API(user_key=key, service_url=url)
# 将文本文件中的数据提交到 API 解析器
file1 = open("123.txt","r")
text_data = file1.read()
params = DocumentParameters()
params["content"] = text_data
file1.close()
try:
return api.data(params)
except StuffAPIException as exception:
print(exception)
if __name__ == '__main__':
result = run('1234', 'https://192.168.0.125:8100/rest/')
y = json.dumps(result)
t = type(y)
print(y)
print(t)
上述的 print(y) 语句将返回我在第一个代码块中展示的确切数据。而 print(t) 语句是为了捕获返回类型,帮助我尝试诊断问题 - 其结果是 <class 'str'>。
现在我们在 print(t) 行下添加如下代码 (与第一个代码块中完全相同):
pd.read_json(json.dumps(result)).to_csv('file.csv')
然后我收到了这个错误:
ValueError: Mixing dicts with non-Series may lead to ambiguous ordering.
我看到了很多关于这个错误的线程,但是似乎没有一个和这里发生的情况完全相关。
通过我迄今为止有限的经验,我猜测这个问题可能是由于返回类型是 string 导致的?我不确定,但这个排除故障步骤只是要克服的第一个障碍 - 我最终需要能够将数据解析成 CSV 文件的单独列,但现在,我只需要在没有错误的情况下将其放入 CSV 文件中。
我知道您无法完全重现这个问题,没有我服务器的访问权限,但希望这并不需要就能解决这个问题。
- Lua 虚拟机加密load(string.dump(function)) 后执行失败问题如何解决
- 我想创建一个 Nginx 规则,禁止访问
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
