回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我试图将一个JSON字符串解析为panda数据帧的最低粒度。在</p>
<h2>尝试</h2>
<p>首先我试着读_json:</p>
<pre><code>jsonData = pd.read_json(apiRequest)
</code></pre>
<p><a href="https://i.stack.imgur.com/tBgCY.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/tBgCY.png" alt="enter image description here"/></a></p>
<p>但很大一部分数据仍然嵌套在networkRank下。在</p>
<p>然后我尝试了json\u normalize,但是这次我缺少了更高一级的数据,比如纬度和经度。在</p>
^{pr2}$
<p><a href="https://i.stack.imgur.com/RTrLC.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/RTrLC.png" alt="enter image description here"/></a></p>
<p>我还试图解析嵌套结构并从头开始构造数据帧,但这段代码导致了错误:</p>
<pre><code>result_nested = json_normalize(json_data, 'networkRank', ['longitude', 'latitude', ['networkRank', 'type3G', 'downloadSpeed']])
</code></pre>
<h2>目标</h2>
<p>将JSON数据解析为一个包含所有字段的平面表,这意味着纬度、经度和距离数据附加到图<a href="https://i.stack.imgur.com/RTrLC.png" rel="nofollow noreferrer">2</a>中的每一行数据。在</p>
<h2>JSON字符串</h2>
<pre><code>{'apiVersion': '2',
'distance': 10,
'latitude': '-6.162959',
'longitude': '35.751607',
'networkRank': [{'networkId': '6402',
'networkName': 'Vodacom',
'type3G': {'averageRssiAsu': '9.5429091136',
'averageRssiDb': '-69.5664329624972',
'downloadSpeed': '1508.1304',
'networkId': '6402',
'networkName': 'Vodacom',
'networkType': '3',
'pingTime': '320.9600',
'reliability': '0.804236452826138',
'sampleSizeRSSI': '948',
'sampleSizeSpeed': '29',
'uploadSpeed': '893.7692'}},
{'networkId': '6400',
'networkName': 'tiGO',
'type3G': {'averageRssiAsu': '15.3537142857',
'averageRssiDb': '-61.4563389583101',
'downloadSpeed': '516.0000',
'networkId': '6400',
'networkName': 'tiGO',
'networkType': '3',
'pingTime': '259.0000',
'reliability': '0.911904765537807',
'sampleSizeRSSI': '935',
'sampleSizeSpeed': '21',
'uploadSpeed': '320.4211'}},
{'networkId': '6403',
'networkName': 'Airtel',
'type3G': {'averageRssiAsu': '13.2729999375',
'averageRssiDb': '-58.1521092977699',
'downloadSpeed': '1080.2500',
'networkId': '6403',
'networkName': 'Airtel',
'networkType': '3',
'pingTime': '194.5556',
'reliability': '0.554680264185345',
'sampleSizeRSSI': '587',
'sampleSizeSpeed': '21',
'uploadSpeed': '572.1579'}}],
'network_type': None,
'perMinuteCurrent': 0,
'perMinuteLimit': 10,
'perMonthCurrent': 0,
'perMonthLimit': 2000}
</code></pre>