小编Bos*_*jan的帖子

Python展平多级JSON

我正在尝试将JSON转换为CSV文件,可用于进一步分析。我的结构存在的问题是,当我转换JSON文件时,我有很多嵌套的字典/列表。

我尝试使用pandas json_normalize(),但它只会使第一级扁平化。

import json
import pandas as pd
from pandas.io.json import json_normalize
from cs import CloudStack

api_key = xxxx
secret = xxxx
endpoint = xxxx

cs = CloudStack(endpoint=endpoint,
                key=api_key,
                secret=secret)

virtual_machines = cs.virtMach()

test = json_normalize(virtual_machines["virtualmachine"])

test.to_csv("test.csv", sep="|", index=False)
Run Code Online (Sandbox Code Playgroud)

任何想法如何讨好整个JSON文件,以便我可以为单个(在这种情况下为虚拟机)条目创建到CSV文件的单行输入?我已经尝试过这里发布的几种解决方案,但是我的结果始终只是将第一级展平。

这是示例JSON(在这种情况下,我仍然会以JSON格式获得“ securitygroup”和“ nic”输出:

{
    "count": 13,
    "virtualmachine": [
        {
            "id": "1082e2ed-ff66-40b1-a41b-26061afd4a0b",
            "name": "test-2",
            "displayname": "test-2",
            "securitygroup": [
                {
                    "id": "9e649fbc-3e64-4395-9629-5e1215b34e58",
                    "name": "test",
                    "tags": []
                }
            ],
            "nic": [
                {
                    "id": "79568b14-b377-4d4f-b024-87dc22492b8e",
                    "networkid": "05c0e278-7ab4-4a6d-aa9c-3158620b6471"
                },
                {
                    "id": "3d7f2818-1f19-46e7-aa98-956526c5b1ad",
                    "networkid": …
Run Code Online (Sandbox Code Playgroud)

python json pandas

5
推荐指数
4
解决办法
1万
查看次数

字符串中的 Pandas read_csv EOF 从行开始

我正面临熊猫 read_csv 的问题。我有一个文件,其中包含 " 作为字段值。实际上,情况并非如此,但我对文件生成没有影响,因此我必须找到解决方法。

pandas.errors.ParserError:标记数据时出错。C 错误:从第 15345 行开始的字符串内的 EOF

我在 Git 上找到了一个关于这个的问题报告(链接在这里),他们建议使用用于“sep”参数的分隔符也用于“quotechar”。在这种情况下,文件结构会混乱。

我做的另一件事是为此添加一个例外,它将运行其余文件的代码,但我将继续遇到该特定类型文件的问题。

我用来读取 CSV 文件的命令:

df_new = pd.read_csv(file_path_name, sep=";", error_bad_lines=False)
Run Code Online (Sandbox Code Playgroud)

对此有什么解决方法的想法(例如忽略此问题的行)?我猜的一种方法是使用 csv 库来删除该行(或用其他东西替换 " ),但我想保持简单并在大熊猫中尽可能多地做。

Python版本:3.6.2

熊猫版本:0.21.0

感谢你并致以真诚的问候

python eof pandas

2
推荐指数
1
解决办法
7464
查看次数

C++环境变量

我想要做的是获取环境变量值并在代码本身中使用它.

我想要做的是(变量设置为export UTMZONE="33T"):

char UTMZone[4] = getenv("UTMZONE");
Run Code Online (Sandbox Code Playgroud)

有了这个我收到以下错误:

error: array must be initialized with a brace-enclosed initializer
Run Code Online (Sandbox Code Playgroud)

我认为问题在于混合类型,但我不知道我必须进行什么样的转换.

c++ types environment-variables

1
推荐指数
1
解决办法
103
查看次数

标签 统计

pandas ×2

python ×2

c++ ×1

environment-variables ×1

eof ×1

json ×1

types ×1