Строковое значение из ответа JSON становится числовым значением в кадре данных Python pandas.Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Строковое значение из ответа JSON становится числовым значением в кадре данных Python pandas.

Сообщение Anonymous »

Я использую Python для извлечения данных из REST API и сохранения их в базе данных SQL. Все работает нормально, за исключением одного значения JSON в ответе.
Ответ JSON

Код: Выделить всё

[
{
"pbxId": "XXXcxx",
"site": "XXX Group - Sydney Office",
"name": "XXXX Service",
"extension": "622",
"totalMembers": 3,
"totalInbound": 1,
"totalAbandoned": 0,
"totalAnswered": 1,
"totalMissed": 0,
"totalCallsToVM": 0,
"totalAdvanced": 0,
"totalRgTime": 36339,
"totalTalkTime": 25613,
"totalCalls": 1,
"avgAbandonedTime": 0,
"avgRgTime": 36339,
"avgRingTime": 10726,
"avgTalkTime": 25613,
"totalAbandonedTime": 0,
"totalRingTime": 10726
}
]

Код: Выделить всё

    response2 = requests.get(url, headers=headers)
d =json.loads(response2.text)
cdr =json_normalize(d)
print(cdr)
когда я печатаю ответ, значение «имя» отображается правильно.
Затем я вставляю это в базу данных SQL

Код: Выделить всё

    conn = pyodbc.connect(connectionString)
df = pd.DataFrame(cdr, columns = ['pbxId','site','name','extension',....'totalRingTime'])
df.columns = ['pbxId','site','name','extension',.....'totalRingTime']
#print(df)
cursor = conn.cursor()
df = df.astype(object).where(pd.notnull(df),None)
for index, row in df.iterrows():
cursor.execute("INSERT INTO eightwave_RingGroupSummary values(?,?,?,?,...,?,?,?,?,?)",row.pbxId,row.site,str(row.name),row.extension,int(row.totalMembers),int(row.totalInbound),....int(row.totalRingTime))
cursor.commit()
cursor.close()
conn.close()
Здесь значение «имя» становится числовым. И оно продолжает увеличиваться. Например, когда в df есть две строки, значение имени становится 0, 1 и т. д.
Любая помощь приветствуется.
TIA
Я ожидаю, что значение будет таким же, как и возвращаемое API. Я попытался удалить приведение типов str()
PS: База данных SQL верна, поскольку INSERT вручную работает должным образом
PS: выходные данные скрипта. См. значения в кружках.
введите здесь описание изображения

Подробнее здесь: https://stackoverflow.com/questions/787 ... das-datafr
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»