 |

02.09.2024, 17:32
|
|
Познающий
Регистрация: 20.01.2022
Сообщений: 51
С нами:
2271859
Репутация:
8
|
|
У меня код меняет структуру файла, а должен менять только prisec в файле.
Вот такая должна быть структура
Сообщение от Спойлер
[{"count_maximum":0,"price":"8000","price_vc":10,"p osition_tab":1,"count":493,"enabled":true,"maximum ":false,"name":"Гражданский талон"}, и т.д
Код:
Код:
import
json
import
tkinter
as
tk
from
tkinter
import
filedialog
,
messagebox
import
chardet
def
detect_encoding
(
file_path
)
:
with
open
(
file_path
,
'rb'
)
as
file
:
raw_data
=
file
.
read
(
)
result
=
chardet
.
detect
(
raw_data
)
return
result
[
'encoding'
]
def
load_json_file
(
file_path
)
:
try
:
encoding
=
detect_encoding
(
file_path
)
with
open
(
file_path
,
'r'
,
encoding
=
encoding
)
as
file
:
return
json
.
load
(
file
)
except
json
.
JSONDecodeError
as
e
:
messagebox
.
showerror
(
"Ошибка"
,
f"Ошибка декодирования JSON:{e}"
)
return
None
except
Exception
as
e
:
messagebox
.
showerror
(
"Ошибка"
,
f"Ошибка при загрузке файла:{e}"
)
return
None
def
save_json_file
(
file_path
,
data
)
:
try
:
with
open
(
file_path
,
'w'
,
encoding
=
'utf-8'
)
as
file
:
json
.
dump
(
data
,
file
,
ensure_ascii
=
False
,
indent
=
4
)
messagebox
.
showinfo
(
"Успех"
,
f"Данные успешно сохранены в файл:{file_path}"
)
except
Exception
as
e
:
messagebox
.
showerror
(
"Ошибка"
,
f"Ошибка при сохранении файла:{e}"
)
def
update_prices
(
target_file_path
,
prices_file_path
)
:
target_data
=
load_json_file
(
target_file_path
)
if
target_data
is
None
:
return
prices_data
=
load_json_file
(
prices_file_path
)
if
prices_data
is
None
:
return
prices_dict
=
{
}
for
item_name
,
item_data
in
prices_data
[
'list'
]
.
items
(
)
:
if
'sa'
in
item_data
and
'price'
in
item_data
[
'sa'
]
:
prices_dict
[
item_name
]
=
item_data
[
'sa'
]
[
'price'
]
else
:
messagebox
.
showwarning
(
"Предупреждение"
,
f"Некорректная структура данных для товара '{item_name}' в файле с ценами."
)
for
item
in
target_data
:
if
item
[
'name'
]
in
prices_dict
:
item
[
'price'
]
=
prices_dict
[
item
[
'name'
]
]
save_json_file
(
target_file_path
,
target_data
)
def
select_target_file
(
)
:
file_path
=
filedialog
.
askopenfilename
(
title
=
"Выберите файл для обновления цен"
,
filetypes
=
[
(
"JSON files"
,
"*.json"
)
]
)
if
file_path
:
target_file_entry
.
delete
(
0
,
tk
.
END
)
target_file_entry
.
insert
(
0
,
file_path
)
def
select_prices_file
(
)
:
file_path
=
filedialog
.
askopenfilename
(
title
=
"Выберите файл с ценами"
,
filetypes
=
[
(
"JSON files"
,
"*.json"
)
]
)
if
file_path
:
prices_file_entry
.
delete
(
0
,
tk
.
END
)
prices_file_entry
.
insert
(
0
,
file_path
)
with
open
(
'prices_file_path.txt'
,
'w'
,
encoding
=
'utf-8'
)
as
file
:
file
.
write
(
file_path
)
def
on_update_click
(
)
:
target_file_path
=
target_file_entry
.
get
(
)
prices_file_path
=
prices_file_entry
.
get
(
)
if
target_file_path
and
prices_file_path
:
update_prices
(
target_file_path
,
prices_file_path
)
else
:
messagebox
.
showwarning
(
"Предупреждение"
,
"Пожалуйста, выберите оба файла."
)
def
load_prices_file_path
(
)
:
try
:
with
open
(
'prices_file_path.txt'
,
'r'
,
encoding
=
'utf-8'
)
as
file
:
prices_file_path
=
file
.
read
(
)
.
strip
(
)
if
prices_file_path
:
prices_file_entry
.
delete
(
0
,
tk
.
END
)
prices_file_entry
.
insert
(
0
,
prices_file_path
)
except
FileNotFoundError
:
pass
root
=
tk
.
Tk
(
)
root
.
title
(
"Обновление цен"
)
frame
=
tk
.
Frame
(
root
)
frame
.
pack
(
padx
=
10
,
pady
=
10
)
target_file_label
=
tk
.
Label
(
frame
,
text
=
"Выберите файл для обновления цен:"
)
target_file_label
.
grid
(
row
=
0
,
column
=
0
,
padx
=
5
,
pady
=
5
)
target_file_entry
=
tk
.
Entry
(
frame
,
width
=
50
)
target_file_entry
.
grid
(
row
=
0
,
column
=
1
,
padx
=
5
,
pady
=
5
)
target_file_button
=
tk
.
Button
(
frame
,
text
=
"Обзор"
,
command
=
select_target_file
)
target_file_button
.
grid
(
row
=
0
,
column
=
2
,
padx
=
5
,
pady
=
5
)
prices_file_label
=
tk
.
Label
(
frame
,
text
=
"Выберите файл с ценами:"
)
prices_file_label
.
grid
(
row
=
1
,
column
=
0
,
padx
=
5
,
pady
=
5
)
prices_file_entry
=
tk
.
Entry
(
frame
,
width
=
50
)
prices_file_entry
.
grid
(
row
=
1
,
column
=
1
,
padx
=
5
,
pady
=
5
)
prices_file_button
=
tk
.
Button
(
frame
,
text
=
"Обзор"
,
command
=
select_prices_file
)
prices_file_button
.
grid
(
row
=
1
,
column
=
2
,
padx
=
5
,
pady
=
5
)
update_button
=
tk
.
Button
(
frame
,
text
=
"Обновить цены"
,
command
=
on_update_click
)
update_button
.
grid
(
row
=
2
,
column
=
0
,
columnspan
=
3
,
pady
=
10
)
load_prices_file_path
(
)
root
.
mainloop
(
)
|
|
|

02.09.2024, 17:42
|
|
Новичок
Регистрация: 27.06.2024
Сообщений: 22
С нами:
991773
Репутация:
3
|
|
Прикрепи примеры файлов с данными
|
|
|

02.09.2024, 17:43
|
|
Познающий
Регистрация: 20.01.2022
Сообщений: 51
С нами:
2271859
Репутация:
8
|
|
Вот файл
|
|
|

02.09.2024, 18:06
|
|
Новичок
Регистрация: 27.06.2024
Сообщений: 22
С нами:
991773
Репутация:
3
|
|
Твой код работает отлично, посмотри на начальную структуру, посмотри чтобы ты точно отправлял нужные файлы.
Проверь работу данного кода, он должен тебе в 300kk.json поменять цену подарка, в первую строку gui передай 300kk.json
Сообщение от Спойлер
tt:
Код:
import
json
import
tkinter
as
tk
from
tkinter
import
filedialog
,
messagebox
import
chardet
def
detect_encoding
(
file_path
)
:
with
open
(
file_path
,
'rb'
)
as
file
:
raw_data
=
file
.
read
(
)
result
=
chardet
.
detect
(
raw_data
)
return
result
[
'encoding'
]
def
load_json_file
(
file_path
)
:
try
:
encoding
=
detect_encoding
(
file_path
)
with
open
(
file_path
,
'r'
,
encoding
=
encoding
)
as
file
:
return
json
.
load
(
file
)
except
json
.
JSONDecodeError
as
e
:
messagebox
.
showerror
(
"Ошибка"
,
f"Ошибка декодирования JSON:{e}"
)
return
None
except
Exception
as
e
:
messagebox
.
showerror
(
"Ошибка"
,
f"Ошибка при загрузке файла:{e}"
)
return
None
def
save_json_file
(
file_path
,
data
)
:
try
:
with
open
(
file_path
,
'w'
,
encoding
=
'utf-8'
)
as
file
:
json
.
dump
(
data
,
file
,
ensure_ascii
=
False
,
indent
=
4
)
messagebox
.
showinfo
(
"Успех"
,
f"Данные успешно сохранены в файл:{file_path}"
)
except
Exception
as
e
:
messagebox
.
showerror
(
"Ошибка"
,
f"Ошибка при сохранении файла:{e}"
)
def
update_prices
(
target_file_path
,
prices_file_path
)
:
target_data
=
load_json_file
(
target_file_path
)
print
(
target_data
)
if
target_data
is
None
:
return
# prices_data = load_json_file(prices_file_path)
prices_data
=
{
'list'
:
{
'Подарок'
:
{
'sa'
:
{
'price'
:
12
}
}
}
}
if
prices_data
is
None
:
return
prices_dict
=
{
}
for
item_name
,
item_data
in
prices_data
[
'list'
]
.
items
(
)
:
if
'sa'
in
item_data
and
'price'
in
item_data
[
'sa'
]
:
prices_dict
[
item_name
]
=
item_data
[
'sa'
]
[
'price'
]
else
:
messagebox
.
showwarning
(
"Предупреждение"
,
f"Некорректная структура данных для товара '{item_name}' в файле с ценами."
)
for
item
in
target_data
:
if
item
[
'name'
]
in
prices_dict
:
item
[
'price'
]
=
prices_dict
[
item
[
'name'
]
]
save_json_file
(
target_file_path
,
target_data
)
def
select_target_file
(
)
:
file_path
=
filedialog
.
askopenfilename
(
title
=
"Выберите файл для обновления цен"
,
filetypes
=
[
(
"JSON files"
,
"*.json"
)
]
)
if
file_path
:
target_file_entry
.
delete
(
0
,
tk
.
END
)
target_file_entry
.
insert
(
0
,
file_path
)
def
select_prices_file
(
)
:
file_path
=
filedialog
.
askopenfilename
(
title
=
"Выберите файл с ценами"
,
filetypes
=
[
(
"JSON files"
,
"*.json"
)
]
)
if
file_path
:
prices_file_entry
.
delete
(
0
,
tk
.
END
)
prices_file_entry
.
insert
(
0
,
file_path
)
with
open
(
'prices_file_path.txt'
,
'w'
,
encoding
=
'utf-8'
)
as
file
:
file
.
write
(
file_path
)
def
on_update_click
(
)
:
target_file_path
=
target_file_entry
.
get
(
)
prices_file_path
=
prices_file_entry
.
get
(
)
if
target_file_path
and
prices_file_path
:
update_prices
(
target_file_path
,
prices_file_path
)
else
:
messagebox
.
showwarning
(
"Предупреждение"
,
"Пожалуйста, выберите оба файла."
)
def
load_prices_file_path
(
)
:
try
:
with
open
(
'prices_file_path.txt'
,
'r'
,
encoding
=
'utf-8'
)
as
file
:
prices_file_path
=
file
.
read
(
)
.
strip
(
)
if
prices_file_path
:
prices_file_entry
.
delete
(
0
,
tk
.
END
)
prices_file_entry
.
insert
(
0
,
prices_file_path
)
except
FileNotFoundError
:
pass
root
=
tk
.
Tk
(
)
root
.
title
(
"Обновление цен"
)
frame
=
tk
.
Frame
(
root
)
frame
.
pack
(
padx
=
10
,
pady
=
10
)
target_file_label
=
tk
.
Label
(
frame
,
text
=
"Выберите файл для обновления цен:"
)
target_file_label
.
grid
(
row
=
0
,
column
=
0
,
padx
=
5
,
pady
=
5
)
target_file_entry
=
tk
.
Entry
(
frame
,
width
=
50
)
target_file_entry
.
grid
(
row
=
0
,
column
=
1
,
padx
=
5
,
pady
=
5
)
target_file_button
=
tk
.
Button
(
frame
,
text
=
"Обзор"
,
command
=
select_target_file
)
target_file_button
.
grid
(
row
=
0
,
column
=
2
,
padx
=
5
,
pady
=
5
)
prices_file_label
=
tk
.
Label
(
frame
,
text
=
"Выберите файл с ценами:"
)
prices_file_label
.
grid
(
row
=
1
,
column
=
0
,
padx
=
5
,
pady
=
5
)
prices_file_entry
=
tk
.
Entry
(
frame
,
width
=
50
)
prices_file_entry
.
grid
(
row
=
1
,
column
=
1
,
padx
=
5
,
pady
=
5
)
prices_file_button
=
tk
.
Button
(
frame
,
text
=
"Обзор"
,
command
=
select_prices_file
)
prices_file_button
.
grid
(
row
=
1
,
column
=
2
,
padx
=
5
,
pady
=
5
)
update_button
=
tk
.
Button
(
frame
,
text
=
"Обновить цены"
,
command
=
on_update_click
)
update_button
.
grid
(
row
=
2
,
column
=
0
,
columnspan
=
3
,
pady
=
10
)
load_prices_file_path
(
)
root
.
mainloop
(
)
|
|
|

02.09.2024, 18:15
|
|
Познающий
Регистрация: 20.01.2022
Сообщений: 51
С нами:
2271859
Репутация:
8
|
|
А можно что бы все цени он поменял? Что бы я скинул просто файл с ценами и файл где нужно изменить prices, он везде поменял цену.
Просто когда скрипт меняет цени, меняется структура файла
Вот идин из примеров.
Сообщение от Спойлер
[
{
"count_maximum": 0,
"price": 17200,
"price_vc": 10,
"position_tab": 1,
"count": 493,
"enabled": true,
"maximum": false,
"name": "Гражданский талон"
},
{
"count_maximum": 0,
"price": 23600,
"price_vc": 10,
"position_tab": 2,
"count": 171,
"enabled": true,
"maximum": false,
"name": "Семейный талон"
},
|
|
|

02.09.2024, 18:22
|
|
Новичок
Регистрация: 27.06.2024
Сообщений: 22
С нами:
991773
Репутация:
3
|
|
Скинь файл где нужно поменять цены, и файл с ценами
|
|
|

02.09.2024, 18:24
|
|
Познающий
Регистрация: 20.01.2022
Сообщений: 51
С нами:
2271859
Репутация:
8
|
|
Вот
|
|
|

02.09.2024, 18:37
|
|
Новичок
Регистрация: 27.06.2024
Сообщений: 22
С нами:
991773
Репутация:
3
|
|
Даже не знаю, у меня все работает
Python:
Код:
import
json
import
tkinter
as
tk
from
tkinter
import
filedialog
,
messagebox
import
chardet
def
detect_encoding
(
file_path
)
:
with
open
(
file_path
,
'rb'
)
as
file
:
raw_data
=
file
.
read
(
)
result
=
chardet
.
detect
(
raw_data
)
return
result
[
'encoding'
]
def
load_json_file
(
file_path
)
:
try
:
encoding
=
detect_encoding
(
file_path
)
with
open
(
file_path
,
'r'
,
encoding
=
encoding
)
as
file
:
return
json
.
load
(
file
)
except
json
.
JSONDecodeError
as
e
:
messagebox
.
showerror
(
"Ошибка"
,
f"Ошибка декодирования JSON:{e}"
)
return
None
except
Exception
as
e
:
messagebox
.
showerror
(
"Ошибка"
,
f"Ошибка при загрузке файла:{e}"
)
return
None
def
save_json_file
(
file_path
,
data
)
:
try
:
with
open
(
file_path
,
'w'
,
encoding
=
'utf-8'
)
as
file
:
json
.
dump
(
data
,
file
,
ensure_ascii
=
False
,
indent
=
4
)
messagebox
.
showinfo
(
"Успех"
,
f"Данные успешно сохранены в файл:{file_path}"
)
except
Exception
as
e
:
messagebox
.
showerror
(
"Ошибка"
,
f"Ошибка при сохранении файла:{e}"
)
def
update_prices
(
target_file_path
,
prices_file_path
)
:
target_data
=
load_json_file
(
target_file_path
)
if
target_data
is
None
:
return
prices_data
=
load_json_file
(
prices_file_path
)
if
prices_data
is
None
:
return
prices_dict
=
{
}
for
item_name
,
item_data
in
prices_data
[
'list'
]
.
items
(
)
:
if
'sa'
in
item_data
and
'price'
in
item_data
[
'sa'
]
:
prices_dict
[
item_name
]
=
item_data
[
'sa'
]
[
'price'
]
else
:
messagebox
.
showwarning
(
"Предупреждение"
,
f"Некорректная структура данных для товара '{item_name}' в файле с ценами."
)
for
item
in
target_data
:
if
item
[
'name'
]
in
prices_dict
:
item
[
'price'
]
=
prices_dict
[
item
[
'name'
]
]
save_json_file
(
target_file_path
,
target_data
)
def
select_target_file
(
)
:
file_path
=
filedialog
.
askopenfilename
(
title
=
"Выберите файл для обновления цен"
,
filetypes
=
[
(
"JSON files"
,
"*.json"
)
]
)
if
file_path
:
target_file_entry
.
delete
(
0
,
tk
.
END
)
target_file_entry
.
insert
(
0
,
file_path
)
def
select_prices_file
(
)
:
file_path
=
filedialog
.
askopenfilename
(
title
=
"Выберите файл с ценами"
,
filetypes
=
[
(
"JSON files"
,
"*.json"
)
]
)
if
file_path
:
prices_file_entry
.
delete
(
0
,
tk
.
END
)
prices_file_entry
.
insert
(
0
,
file_path
)
with
open
(
'prices_file_path.txt'
,
'w'
,
encoding
=
'utf-8'
)
as
file
:
file
.
write
(
file_path
)
def
on_update_click
(
)
:
target_file_path
=
target_file_entry
.
get
(
)
prices_file_path
=
prices_file_entry
.
get
(
)
if
target_file_path
and
prices_file_path
:
update_prices
(
target_file_path
,
prices_file_path
)
else
:
messagebox
.
showwarning
(
"Предупреждение"
,
"Пожалуйста, выберите оба файла."
)
def
load_prices_file_path
(
)
:
try
:
with
open
(
'prices_file_path.txt'
,
'r'
,
encoding
=
'utf-8'
)
as
file
:
prices_file_path
=
file
.
read
(
)
.
strip
(
)
if
prices_file_path
:
prices_file_entry
.
delete
(
0
,
tk
.
END
)
prices_file_entry
.
insert
(
0
,
prices_file_path
)
except
FileNotFoundError
:
pass
root
=
tk
.
Tk
(
)
root
.
title
(
"Обновление цен"
)
frame
=
tk
.
Frame
(
root
)
frame
.
pack
(
padx
=
10
,
pady
=
10
)
target_file_label
=
tk
.
Label
(
frame
,
text
=
"Выберите файл для обновления цен:"
)
target_file_label
.
grid
(
row
=
0
,
column
=
0
,
padx
=
5
,
pady
=
5
)
target_file_entry
=
tk
.
Entry
(
frame
,
width
=
50
)
target_file_entry
.
grid
(
row
=
0
,
column
=
1
,
padx
=
5
,
pady
=
5
)
target_file_button
=
tk
.
Button
(
frame
,
text
=
"Обзор"
,
command
=
select_target_file
)
target_file_button
.
grid
(
row
=
0
,
column
=
2
,
padx
=
5
,
pady
=
5
)
prices_file_label
=
tk
.
Label
(
frame
,
text
=
"Выберите файл с ценами:"
)
prices_file_label
.
grid
(
row
=
1
,
column
=
0
,
padx
=
5
,
pady
=
5
)
prices_file_entry
=
tk
.
Entry
(
frame
,
width
=
50
)
prices_file_entry
.
grid
(
row
=
1
,
column
=
1
,
padx
=
5
,
pady
=
5
)
prices_file_button
=
tk
.
Button
(
frame
,
text
=
"Обзор"
,
command
=
select_prices_file
)
prices_file_button
.
grid
(
row
=
1
,
column
=
2
,
padx
=
5
,
pady
=
5
)
update_button
=
tk
.
Button
(
frame
,
text
=
"Обновить цены"
,
command
=
on_update_click
)
update_button
.
grid
(
row
=
2
,
column
=
0
,
columnspan
=
3
,
pady
=
10
)
load_prices_file_path
(
)
root
.
mainloop
(
)
|
|
|

02.09.2024, 18:40
|
|
Познающий
Регистрация: 20.01.2022
Сообщений: 51
С нами:
2271859
Репутация:
8
|
|
А можешь показать результат?
|
|
|

02.09.2024, 19:06
|
|
Новичок
Регистрация: 27.06.2024
Сообщений: 22
С нами:
991773
Репутация:
3
|
|
Сообщение от _Snake_
А можешь показать результат?
Изменил цену подарка на 12, см. 132-141 строку
Сообщение от Спойлер
подарок:
Код:
[
{
"count"
:
493
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Гражданский талон"
,
"position_tab"
:
1
,
"price"
:
17200
,
"price_vc"
:
10
}
,
{
"count"
:
171
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Семейный талон"
,
"position_tab"
:
2
,
"price"
:
23600
,
"price_vc"
:
10
}
,
{
"count"
:
2
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Скидочный талон"
,
"position_tab"
:
3
,
"price"
:
2170000
,
"price_vc"
:
10
}
,
{
"count"
:
439
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Бронзовая рулетка"
,
"position_tab"
:
4
,
"price"
:
14000
,
"price_vc"
:
10
}
,
{
"count"
:
58
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Серебряная рулетка"
,
"position_tab"
:
5
,
"price"
:
80700
,
"price_vc"
:
10
}
,
{
"count"
:
17
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Золотая рулетка"
,
"position_tab"
:
6
,
"price"
:
282000
,
"price_vc"
:
10
}
,
{
"count"
:
8
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Платиновая рулетка"
,
"position_tab"
:
7
,
"price"
:
542000
,
"price_vc"
:
10
}
,
{
"count"
:
219
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Камень"
,
"position_tab"
:
8
,
"price"
:
24500
,
"price_vc"
:
10
}
,
{
"count"
:
50
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Металл"
,
"position_tab"
:
9
,
"price"
:
81500
,
"price_vc"
:
10
}
,
{
"count"
:
51
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Бронза"
,
"position_tab"
:
10
,
"price"
:
79600
,
"price_vc"
:
10
}
,
{
"count"
:
263
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Серебро"
,
"position_tab"
:
11
,
"price"
:
20500
,
"price_vc"
:
10
}
,
{
"count"
:
15
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Алюминий"
,
"position_tab"
:
12
,
"price"
:
318000
,
"price_vc"
:
10
}
,
{
"count"
:
87
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Золото"
,
"position_tab"
:
13
,
"price"
:
56000
,
"price_vc"
:
10
}
,
{
"count"
:
168
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Подарок"
,
"position_tab"
:
14
,
"price"
:
12
,
"price_vc"
:
10
}
,
{
"count"
:
24
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Ларец с премией"
,
"position_tab"
:
15
,
"price"
:
174000
,
"price_vc"
:
10
}
,
{
"count"
:
23
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Ларец Олигарха"
,
"position_tab"
:
16
,
"price"
:
215000
,
"price_vc"
:
10
}
,
{
"count"
:
15
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Ларец крафтера"
,
"position_tab"
:
17
,
"price"
:
338000
,
"price_vc"
:
10
}
,
{
"count"
:
12
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Ларец дальнобойщика"
,
"position_tab"
:
18
,
"price"
:
333000
,
"price_vc"
:
10
}
,
{
"count"
:
52
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Ларец Mortal Combat"
,
"position_tab"
:
19
,
"price"
:
90400
,
"price_vc"
:
10
}
,
{
"count"
:
18
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Ларец Водителя Автобуса"
,
"position_tab"
:
20
,
"price"
:
284000
,
"price_vc"
:
10
}
,
{
"count"
:
25
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Ларец рыболова"
,
"position_tab"
:
21
,
"price"
:
213000
,
"price_vc"
:
10
}
,
{
"count"
:
32
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Рандомный Ларец"
,
"position_tab"
:
22
,
"price"
:
173000
,
"price_vc"
:
10
}
,
{
"count"
:
6
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Ларец пилота"
,
"position_tab"
:
23
,
"price"
:
805000
,
"price_vc"
:
10
}
,
{
"count"
:
19
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Ларец развозчика продуктов"
,
"position_tab"
:
24
,
"price"
:
232000
,
"price_vc"
:
10
}
,
{
"count"
:
21
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Ларец кладоискателя"
,
"position_tab"
:
25
,
"price"
:
213000
,
"price_vc"
:
10
}
,
{
"count"
:
35
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Ларец Tidex"
,
"position_tab"
:
26
,
"price"
:
140000
,
"price_vc"
:
10
}
,
{
"count"
:
60
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Ящик Marvel"
,
"position_tab"
:
27
,
"price"
:
79300
,
"price_vc"
:
10
}
,
{
"count"
:
60
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Ящик Джентельменов"
,
"position_tab"
:
28
,
"price"
:
98500
,
"price_vc"
:
10
}
,
{
"count"
:
60
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Ящик Minecraft"
,
"position_tab"
:
29
,
"price"
:
92400
,
"price_vc"
:
10
}
,
{
"count"
:
34
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Супер мото-ящик"
,
"position_tab"
:
30
,
"price"
:
163000
,
"price_vc"
:
10
}
,
{
"count"
:
18
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Супер авто-ящик"
,
"position_tab"
:
31
,
"price"
:
310000
,
"price_vc"
:
10
}
,
{
"count"
:
18
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Ностальгический ящик"
,
"position_tab"
:
32
,
"price"
:
276000
,
"price_vc"
:
10
}
,
{
"count"
:
9
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Super Car Box"
,
"price"
:
468000
,
"price_vc"
:
10
}
,
{
"count"
:
9
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Concept Car Luxury"
,
"price"
:
447000
,
"price_vc"
:
10
}
,
{
"count"
:
790
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Талон для охранника: +1 EXP"
,
"position_tab"
:
35
,
"price"
:
7190
,
"price_vc"
:
10
}
,
{
"count"
:
131
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Точильный камень"
,
"position_tab"
:
36
,
"price"
:
48100
,
"price_vc"
:
10
}
,
{
"count"
:
21
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Зловещая монета"
,
"position_tab"
:
37
,
"price"
:
223000
,
"price_vc"
:
10
}
,
{
"count"
:
3
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Распредвал (sport)"
,
"position_tab"
:
38
,
"price"
:
2250000
,
"price_vc"
:
10
}
,
{
"count"
:
3
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Турбокомпрессор (sport)"
,
"position_tab"
:
39
,
"price"
:
2280000
,
"price_vc"
:
10
}
,
{
"count"
:
3
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Нагнетатель (sport)"
,
"position_tab"
:
40
,
"price"
:
2200000
,
"price_vc"
:
10
}
,
{
"count"
:
3
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Сцепление (sport)"
,
"position_tab"
:
41
,
"price"
:
2230000
,
"price_vc"
:
10
}
,
{
"count"
:
3
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"КПП (sport)"
,
"position_tab"
:
42
,
"price"
:
2230000
,
"price_vc"
:
10
}
,
{
"count"
:
3
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Дифференциал (sport)"
,
"position_tab"
:
43
,
"price"
:
2230000
,
"price_vc"
:
10
}
,
{
"count"
:
3
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Подвеска (sport)"
,
"position_tab"
:
44
,
"price"
:
2190000
,
"price_vc"
:
10
}
,
{
"count"
:
3
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Коленвал (sport)"
,
"position_tab"
:
45
,
"price"
:
2220000
,
"price_vc"
:
10
}
,
{
"count"
:
3
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Тормоза (sport)"
,
"position_tab"
:
46
,
"price"
:
2220000
,
"price_vc"
:
10
}
,
{
"count"
:
3
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Переносной ларек (1)"
,
"position_tab"
:
47
,
"price"
:
3290000
,
"price_vc"
:
10
}
,
{
"count"
:
3
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Переносной ларек (2)"
,
"position_tab"
:
48
,
"price"
:
3610000
,
"price_vc"
:
10
}
,
{
"count"
:
2
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Переносной ларек (3)"
,
"position_tab"
:
49
,
"price"
:
5020000
,
"price_vc"
:
10
}
,
{
"count"
:
5268
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Бандитский респект"
,
"position_tab"
:
50
,
"price"
:
88900
,
"price_vc"
:
10
}
,
{
"count"
:
9878
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Дрова"
,
"position_tab"
:
51
,
"price"
:
4170
,
"price_vc"
:
10
}
,
{
"count"
:
141
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Древесина высшего качества"
,
"position_tab"
:
52
,
"price"
:
29300
,
"price_vc"
:
10
}
,
{
"count"
:
790
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Счастливая травка"
,
"position_tab"
:
53
,
"price"
:
6420
,
"price_vc"
:
10
}
,
{
"count"
:
98
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Жареное мясо оленины"
,
"position_tab"
:
54
,
"price"
:
65500
,
"price_vc"
:
10
}
,
{
"count"
:
112
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Тушка оленя"
,
"position_tab"
:
55
,
"price"
:
42100
,
"price_vc"
:
10
}
,
{
"count"
:
5199
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Череп"
,
"position_tab"
:
56
,
"price"
:
[
2300
,
800000
]
,
"price_vc"
:
10
}
,
{
"count"
:
34
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Одежда из секонд-хенда"
,
"position_tab"
:
57
,
"price"
:
150000
,
"price_vc"
:
10
}
,
{
"count"
:
2634
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Семейная монета"
,
"position_tab"
:
58
,
"price"
:
1880
,
"price_vc"
:
10
}
,
{
"count"
:
15805
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Монета охотника"
,
"position_tab"
:
59
,
"price"
:
2040
,
"price_vc"
:
10
}
,
{
"count"
:
1317
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Лён"
,
"price"
:
4290
,
"price_vc"
:
10
}
,
{
"count"
:
1317
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Хлопок"
,
"position_tab"
:
61
,
"price"
:
4590
,
"price_vc"
:
10
}
,
{
"count"
:
0
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Вечная рабочая виза"
,
"position_tab"
:
62
,
"price"
:
7460000
,
"price_vc"
:
10
}
,
{
"count"
:
0
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Twin Turbo"
,
"price"
:
13100000
,
"price_vc"
:
10
}
,
{
"count"
:
21
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Ларец Vice City"
,
"position_tab"
:
64
,
"price"
:
224000
,
"price_vc"
:
10
}
,
{
"count"
:
10
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Ларец хэллоуина 2022"
,
"position_tab"
:
65
,
"price"
:
501000
,
"price_vc"
:
10
}
,
{
"count"
:
9
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Ларец петуха"
,
"position_tab"
:
66
,
"price"
:
592000
,
"price_vc"
:
10
}
,
{
"count"
:
14
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Ларец семейных охранников"
,
"position_tab"
:
67
,
"price"
:
318000
,
"price_vc"
:
10
}
,
{
"count"
:
8
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Ларец инкассатора"
,
"position_tab"
:
68
,
"price"
:
558000
,
"price_vc"
:
10
}
,
{
"count"
:
14
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Ларец Fortnite"
,
"position_tab"
:
69
,
"price"
:
348000
,
"price_vc"
:
10
}
,
{
"count"
:
24
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Точильный амулет"
,
"position_tab"
:
70
,
"price"
:
198000
,
"price_vc"
:
10
}
,
{
"count"
:
8
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Кусок редкой ткани"
,
"position_tab"
:
71
,
"price"
:
404000
,
"price_vc"
:
10
}
,
{
"count"
:
32
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Rare Box Blue"
,
"price"
:
175000
,
"price_vc"
:
10
}
,
{
"count"
:
32
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Rare Box Yellow"
,
"price"
:
167000
,
"price_vc"
:
10
}
,
{
"count"
:
32
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Rare Box Red"
,
"price"
:
169000
,
"price_vc"
:
10
}
,
{
"count"
:
4
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Смазка для разгона видеокарты"
,
"position_tab"
:
75
,
"price"
:
1140000
,
"price_vc"
:
10
}
,
{
"count"
:
18
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Охлаждающая жидкость для видеокарты"
,
"position_tab"
:
76
,
"price"
:
288000
,
"price_vc"
:
10
}
,
{
"count"
:
3
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Заточка для бронежилета"
,
"position_tab"
:
77
,
"price"
:
1210000
,
"price_vc"
:
10
}
,
{
"count"
:
7
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Алмазный камень"
,
"position_tab"
:
78
,
"price"
:
652000
,
"price_vc"
:
10
}
,
{
"count"
:
3
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Ларец Arizona"
,
"position_tab"
:
79
,
"price"
:
1890000
,
"price_vc"
:
10
}
,
{
"count"
:
10
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Пасхальный ларец 2024"
,
"position_tab"
:
80
,
"price"
:
446000
,
"price_vc"
:
10
}
,
{
"count"
:
14
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Супер охлаждающая жидкость для видеокарты"
,
"position_tab"
:
81
,
"price"
:
346000
,
"price_vc"
:
10
}
,
{
"count"
:
35
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Рыбная монета"
,
"position_tab"
:
82
,
"price"
:
144000
,
"price_vc"
:
10
}
,
{
"count"
:
0
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Улучшение для автомобиля"
,
"position_tab"
:
83
,
"price"
:
7490000
,
"price_vc"
:
10
}
,
{
"count"
:
79
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"AZ-Монеты (Передаваемые)"
,
"position_tab"
:
84
,
"price"
:
57800
,
"price_vc"
:
10
}
,
{
"count"
:
1
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Темная материя"
,
"position_tab"
:
85
,
"price"
:
4280000
,
"price_vc"
:
10
}
,
{
"count"
:
0
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Тормоза (sport+)"
,
"position_tab"
:
86
,
"price"
:
7960000
,
"price_vc"
:
10
}
,
{
"count"
:
0
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Коленвал (sport+)"
,
"position_tab"
:
87
,
"price"
:
8530000
,
"price_vc"
:
10
}
,
{
"count"
:
0
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Подвеска (sport+)"
,
"position_tab"
:
88
,
"price"
:
7940000
,
"price_vc"
:
10
}
,
{
"count"
:
0
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Дифференциал (sport+)"
,
"position_tab"
:
89
,
"price"
:
8490000
,
"price_vc"
:
10
}
,
{
"count"
:
0
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Турбокомпрессор (sport+)"
,
"position_tab"
:
90
,
"price"
:
8560000
,
"price_vc"
:
10
}
,
{
"count"
:
0
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Распредвал (sport+)"
,
"position_tab"
:
91
,
"price"
:
8530000
,
"price_vc"
:
10
}
,
{
"count"
:
0
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"КПП (sport+)"
,
"position_tab"
:
92
,
"price"
:
8460000
,
"price_vc"
:
10
}
,
{
"count"
:
0
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Нагнетатель (sport+)"
,
"position_tab"
:
93
,
"price"
:
8490000
,
"price_vc"
:
10
}
,
{
"count"
:
0
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Сцепление (sport+)"
,
"position_tab"
:
94
,
"price"
:
8370000
,
"price_vc"
:
10
}
,
{
"count"
:
0
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Чип-тюнинг (STAGE 3)"
,
"position_tab"
:
95
,
"price"
:
18000000
,
"price_vc"
:
10
}
,
{
"count"
:
3
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Уголь"
,
"position_tab"
:
96
,
"price"
:
1320000
,
"price_vc"
:
10
}
,
{
"count"
:
4390
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Шкура оленя"
,
"position_tab"
:
97
,
"price"
:
2950
,
"price_vc"
:
10
}
,
{
"count"
:
1
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Шахтерский сплав"
,
"position_tab"
:
98
,
"price"
:
5240000
,
"price_vc"
:
10
}
,
{
"count"
:
0
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Прочная ткань"
,
"position_tab"
:
99
,
"price"
:
18300000
,
"price_vc"
:
10
}
,
{
"count"
:
0
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Продажа фишек без комиссии"
,
"position_tab"
:
100
,
"price"
:
8970000
,
"price_vc"
:
10
}
,
{
"count"
:
0
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Наклейка Суприм"
,
"position_tab"
:
101
,
"price"
:
8570000
,
"price_vc"
:
10
}
,
{
"count"
:
0
,
"count_maximum"
:
0
,
"enabled"
:
true
,
"maximum"
:
false
,
"name"
:
"Неоновая подсветка (настраиваемая)"
,
"position_tab"
:
102
,
"price"
:
27100000
,
"price_vc"
:
10
}
]
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|